====== Архитектура пакета Toolkit ====== ===== Диаграмма классов ===== {{{:limb3_2007_2:ru:packages:toolkit:limb_3_x_2007_2_toolkit.png|:limb3_2007_2:ru:packages:toolkit:limb_3_x_2007_2_toolkit.png}}} ===== Описание классов пакета Toolkit ===== ^Класс^Назначение^ |[[lmbRegistry]]|Общедоступный Реестр. Хранит любые данные. Используется классом lmbToolkit для сохранения и восстановления. При желании может использоваться отдельно от остальных классов пакета.| |[[lmbToolkit]]|Часто называется инструментарием. Содержит набор инструментов tools, которым делегирует обязанности. Клиенты ничего не знают об инструментах и работает так, как будто все нужные методы есть в lmbToolkit.| |[[lmbStaticTools]]|Набор инструментов, который всегда возвращает предопределенный результат. Часто используется в тестах для изменения поведения других инструментов| |[[lmbAbstractTools]]|Абстрактный класс, который используется при создании своих наборов инструментов. Возвращает из getToolsSignatures все методы, которые есть в классе| |[[lmbMockToolsWrapper]]|Враппер для внедрения моков в инструментарий. Позволяет создавать моки на другие набор инструментов, но также указывать, какие методы делегировать моку, а какие нет.| |[[lmbCompositeToolkitTools]]|Позволяет объединить в один несколько наборов инструментов. Этот класс используется в lmbTookit :: merge()| |[[lmbCompositeNonItersectingToolkitTools]]|Позволяет объединять в один несколько наборов инструментов, как и родительский класс lmbCompositeToolkitTools, однако если наборы содержат пересекающиеся по названию методы, то будет сгенерирована исключительная ситуация. Этот класс используется в lmbTookit :: extend()|