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(请求者)