23種設計模式的登場角色
Iterator模式
- Iterator(迭代器)
- ConcreteIterator(具體的迭代器)
- Aggregate(集合)
- ConcreteAggregate(具體的集合)
Adapter模式
- Target(對象)
- Client(請求者)
- Adaptee(被適配)
- Adapter(適配)
Template Method模式
- AbstractClass(抽象類)
- ConcreteClass(具體類)
Factory Method模式
- Product(產品)
- Creator(創建者)
- ConcreteProduct(具體的產品)
- ConcreteCreator(具體的創建者)
Singleton模式
- Singleton(單例)
Prototype模式
- Prototype(原型)
- ConcretePrototype(具體的原型)
- Client(使用者)
Builder模式
- Builder(建造者)
- ConcreteBuilder(具體的建造者)
- Director(監工)
- Client(使用者)
Abstract Factory模式
- AbstractFactory(抽象工廠)
- AbstractProduct(抽象產品)
- Client(委託者)
Bridge模式
- Abstraction(抽象化)
- RefinedAbstraction(改善後的抽象化)
- Implementor(實現者)
- ConcreteImplementor(具體實現者)
Strategy模式
- Strategy(策略)
- ConcreteStrategy(具體的策略)
- Context(上下文)
Composite模式
- Leaf(葉子)
- Composite(複合物)
- Component
- Client
Decorator模式
- Component
- ConcreteComponent
- Decorator(裝飾物)
- ConcreteDecorator(具體的裝飾物)
Visitor模式
- Visitor(訪問者)
- ConcreteVisitor(具體的訪問者)
- Element(元素)
- ConcreteElement(具體的元素)
- ObjectStructure(對象結構)
Chain of Responsibility模式
- Handler(處理者)
- ConcreteHandler(具體的處理者)
- Client(請求者)
Facade模式
- Facade(窗口)
- 構成系統的許多其他角色
- Client(請求者)
Mediator模式
- Mediator(中介者)
- ConcreteMediator(具體的中介者)
- Colleague(同事)
- ConcreteColleague(具體的同事)
Observer模式
- Subject(觀察對象)
- ConcreteSubject(具體的觀察對象)
- Observer(觀察者)
- ConcreteObserver(具體的觀察者)
Memento模式
- Originator(生成者)
- Memento(紀念品)
- Caretaker(負責人)
State模式
- State(狀態)
- ConcreteState(具體的狀態)
- Context(狀況、前後關係、上下文)
Flyweight模式
- Flyweight(輕量級)
- FlyweightFactory(輕量級工廠)
- Client(請求者)
Proxy模式
- Subject(主體)
- Proxy(代理人)
- RealSubject(實際的主體)
- Client(請求者)
Command模式
- Command(命令)
- ConcreteCommand(具體的命令)
- Receiver(接收者)
- Client(請求者)
- Invoker(發動者)
Interpreter模式
- TeminalExpression(終結符表達式)
- NonterminalExpression(非終結符表達式)
- Context(文脈、上下文)
- Client(請求者)