CodeLIB
на главную карта сайта обратная связь

Популярные задачи:

#Счетчик времени с точностью до микросекунд. (118755 hits)
#Случайный выбор нескольких несовпадающих значений из множества. (52489 hits)
#Хранение иерархических деревьев. (48490 hits)
#Создание простейшей таблицы. (31777 hits)
#Подмножество с максимальной суммой. (120039 hits)
#Просмотр изображения во всплывающем окне. (82317 hits)
#Рисование окружности (по Брезенхэму). (28290 hits)
#Предварительная загрузка изображений. (42704 hits)
#Рисование множества Мандельброта. (38657 hits)
#Вычисление среднего, среднего отклонения, среднеквадратического отклонения и дисперсии заданной выборки. (41697 hits)
#Логирование в GUI. (27101 hits)
#Часики на js. (84376 hits)
#Вставка новой записи в таблицу БД. (31135 hits)
#Рисование линии. (33484 hits)
#Вычисление минимального / максимального значения. (68638 hits)
#Овал, вписанный в прямоугольник. (32320 hits)
#Рисование прямоугольника. (26290 hits)
#"The Java Programming Language" Ken Arnold, James Gosling, David Holmes листинги, код, примеры из книги, исходники. (55048 hits)
#Глубокое полное клонирование. (30469 hits)
#Синус. (54648 hits)


Главная >> Каталог задач >> Паттерны >> Структурные

Раздел Структурные, Паттерны

Всего: 7

Структурные паттерны решают вопрос о том, как из уже имеющихся классов и объектов оптимально получить более крупные структуры и образования. Структурные паттерны уровня класса используют наследование для составления композиций из интерфейсов и реализаций (паттерн Адаптер). Простой пример - использование множественного наследования для объединения нескольких классов в один (правда далеко не во всех современных языках поддерживается множественное наследование). В результате получается класс, обладающий свойствами всех своих родителей. Особенно полезен этот паттерн, когда нужно организовать совместную работу нескольких независимо разработанных библиотек.

Вместо композиции интерфейсов или реализаций структурные паттерны уровня объекта компонуют объекты для получения новой функциональности. Дополнительная гибкость в этом случае связана с возможностью изменить композицию объектов во время выполнения, т.е. динамически, полностью или частично, поменять использующийся набор классов, что конечно недопустимо для статической композиции классов (паттерн компоновщик, заместитель, приспособленец, декоратор).

Вообще, все структурные паттерны похожи между собой, особенно когда речь идет об их участниках и взаимодействиях. Вероятное объяснение такому явлению: все структурные паттерны основаны на небольшом множестве языковых механизмов структурирования кода и объектов (одиночном и множественном наследовании для паттернов уровня класса и композиции для паттернов уровня объектов). Но имеющееся сходство может быть обманчиво, ибо с помощью разных паттернов можно решать совершенно разные задачи.

Для большего понимания можно сопоставить отдельные группы структурных паттернов, чтобы более выявить их сравнительные достоинства и недостатки.

все паттерны, расширенный поиск>>
Сортировать по: названию, числу реализаций, дате, популярности, рейтингу, страницы: 1
pattern#: 211 [раздел: Структурные | hits: 163779]
Паттерн: [реализаций: 4]
аннотация: Заместитель - паттерн, контролирующий доступ к объектам, предоставляя более оптимальное их взаимодействие.
 содержание: «Паттерн Proxy» Заместитель - паттерн, контролирующий доступ к объектам, предоставляя более оптимальное их взаимодействие. Разумно управлять доступом к...
Aвтор: [добавлена: ]
1
pattern#: 210 [раздел: Структурные | hits: 108787]
Паттерн: [реализаций: 9]
аннотация: Приспособленец - паттерн, структурирующий объекты таким образом, что из них инстанцируется всего лишь ограниченный необходимый набор экземпляров вместо всего...
 содержание: «Паттерн Flyweight» Приспособленец - паттерн, структурирующий объекты таким образом, что из них инстанцируется всего лишь ограниченный необходимый набор экземпляров...
Aвтор: [добавлена: ]
2
pattern#: 209 [раздел: Структурные | hits: 150481]
Паттерн: [реализаций: 7]
аннотация: Фасад - паттерн, структурирующий объекты, предоставляя ко всем ним доступ через единый шлюз.
 содержание: «Паттерн Facade» Фасад - паттерн, структурирующий объекты, предоставляя ко всем ним доступ через единый шлюз. Предоставляет единый, унифицированный интерфейс...
Aвтор: [добавлена: ]
3
pattern#: 208 [раздел: Структурные | hits: 150355]
Паттерн: [реализаций: 4]
аннотация: Декоратор - паттерн, структурирующий объекты, добавляя, расширяя их функциональность. Также фигурирует под именем Wrapper.
 содержание: «Паттерн Decorator» Декоратор - паттерн, структурирующий объекты, расширяя их функциональность. Также фигурирует под именем Wrapper. Динамически расширяет...
Aвтор: [добавлена: ]
4
pattern#: 207 [раздел: Структурные | hits: 164558]
Паттерн: [реализаций: 7]
аннотация: Компоновщик - паттерн, структурирующий объекты таким образом, что появляется возможность унифицировано, одинаково обращаться с каждым из них.
 содержание: «Паттерн Composite» Компоновщик - паттерн, структурирующий объекты таким образом, что появляется возможность унифицировано, одинаково обращаться с каждым из них. ...
Aвтор: [добавлена: ]
5
pattern#: 206 [раздел: Структурные | hits: 172561]
Паттерн: [реализаций: 10]
аннотация: Мост – паттерн, оптимальным образом структурирующий используемые иерархии общих абстракций и их конкретных реализаций. Известен также под именем Handle/Body...
 содержание: «Паттерн Bridge» Мост – паттерн, оптимальным образом структурирующий используемые иерархии общих абстракций и их конкретных реализаций. Известен также под...
Aвтор: [добавлена: ]
6
pattern#: 205 [раздел: Структурные | hits: 136552]
Паттерн: [реализаций: 4]
аннотация: Адаптер – паттерн, унифицирующий классы и объекты. Преобразует интерфейс одного класса в интерфейс другого, который ожидают клиенты.
 содержание: «Паттерн Adapter (или Wrapper)» Адаптер – паттерн, унифицирующий классы и объекты. Преобразует интерфейс одного класса в интерфейс другого, который ожидают...
Aвтор: [добавлена: ]
7
страницы: 1
<< назад +добавить Паттерн
Всего: 7


каталог | задачи | паттерны | исходники | стат | форумы | карта сайта | контакты | ссылки 
© 2006-2021 CodeLAB Group
  Все права защищены
Страница сгенерирована за 0.053775 секунд
Количество запросов к БД: 16, gzip: off