Что такое «составной шаблон»? - PullRequest
8 голосов
/ 30 января 2011

Может ли кто-нибудь объяснить и привести реальный пример Составной шаблон проектирования ?

1 Ответ

5 голосов
/ 30 января 2011

Составной шаблон можно использовать, когда набор объектов должен обрабатываться так же, как один объект одного типа.Это часто используется с древовидными данными.Ниже приведен пример, где этот шаблон хорошо подходит:

public abstract class Shape {
    public abstract void Draw();
}

public class Line : Shape {
    public override void Draw() {
        // Draw line
    }
}

public class Polygon : Shape {

    private IList<Line> lines;

    public override void Draw() {
        foreach (Shape line in lines) {
            line.Draw();
        }
    }
}

Как вы можете видеть, шаблон позволяет коду, работающему с рисованием фигур, не знать, сколько линий нарисовано.

...