Компоновщик
Composite
Тип структурный
Описан в Design Patterns Да

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

Цель

править

Паттерн определяет иерархию классов, которые одновременно могут состоять из примитивных и сложных объектов, упрощает архитектуру клиента, делает процесс добавления новых видов объекта более простым.

Описание

править

UML-диаграмма шаблона:

Примеры реализации

править

Пример на Java

править

Пример на C#

править

Пример на C++

править

Пример на D

править

Пример на Python

править

Пример на PHP5

править

Пример компоновщика с внешним итератором на PHP5

править

Пример на PHP5.4

править

Пример на CoffeeScript

править

Пример на VB.NET

править

Пример на Delphi

править

Пример на JavaScript

править

Пример на Swift

править

Ссылки

править

📚 Artikel Terkait di Wikipedia

IEC 61499

соответствии с соответствующими стандартами. Составной функциональный блок (Composite function block — CFB): функционал составного блока определяется сетью функциональных

Координатный спуск

complexity of randomized block-coordinate descent methods for minimizing a composite function // Mathematical Programming. — Springer, April 2011. — Т. 144, вып

Итератор (шаблон проектирования)

{ public static function go() { $a = new Composite("c1"); $b = new Composite("c2"); $c = new Composite("c3"); $topItem = new Composite("top item"); $topItem->add($a);

Одиночка (шаблон проектирования)

экземпляр объекта private function __construct(){ /* ... @return Singleton */ } // Защищаем от создания через new Singleton private function __clone() { /* ..

Декоратор (шаблон проектирования)

шаблона. function Component() { this.operation = function() { }; this.getPrice = function() { }; this.setPrice = function() { }; } function ConcreteComponent()

Фабричный метод (шаблон проектирования)

PHP <?php interface Product{ public function GetName(); } class ConcreteProductA implements Product{ public function GetName() { return "ProductA"; } }

Фасад (шаблон проектирования)

*/ function SubSystem1() { this.method1 = function() { console.log("вызван SubSystem1.method1"); }; } function SubSystem2() { this.method2 = function()

Абстрактная фабрика (шаблон проектирования)

языке PHP5 interface IHead { public function drawHead($x, $y); } class RedHead implements IHead { public function drawHead($x, $y) { echo 'Your red head