![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
UML
.faith
別把秘密告訴風,風會吹過整個森林
展开
-
Template Method(Reference:Design Patterns - Elements of Reusable Object-Oriented Software)
AbstractClass(抽象类)--- 定义抽象的PrimitiveOperation,具体的子类将重定义它们以实现一个算法的各步骤--- 实现一个模板方法TemplateMethod,定义一个算法的骨架,该模板方法不仅调用PrimitiveOperation,也调用定义在AbstractClass或其他对象中的操作ConcreteClass(具体类)--- 实现Primit...原创 2019-09-03 09:26:30 · 311 阅读 · 0 评论 -
Adapter(Reference:Design Patterns - Elements of Reusable Object-Oriented Software)
Target--- 定义Client使用的与特定领域相关的接口。Client--- 与符合Target接口的对象协同Adaptee--- 定义一个已经存在的接口,这个接口需要适配Adapter--- 对Adaptee的接口与Target接口进行适配...原创 2019-09-05 16:13:20 · 68 阅读 · 0 评论 -
Mediator(Reference:Design Patterns - Elements of Reusable Object-Oriented Software)
Mediator--- 中介者定义一个接口用于与各同事(Colleague)对象通信ConcreteMediator--- 具体中介者通过协调各同事对象实现协作行为--- 连接并维护它的各个同事Colleague class--- 每一个同事类都知道它的中介者对象--- 每一个同事对象在需要与其他同事通信的时候,与它的中介者通信...原创 2019-09-06 10:13:46 · 89 阅读 · 0 评论 -
State(Reference:Design Patterns - Elements of Reusable Object-Oriented Software)
Context--- 定义客户感兴趣的接口--- 维护一个ConcreteState子类的实例,这个实例定义当前状态。State--- 定义一个接口以封装与Context的一个特定状态相关的行为ConcreteState subclasses--- 每一子类实现一个与Context的一个状态相关的行为...原创 2019-09-06 11:08:03 · 80 阅读 · 0 评论 -
Memento(Reference:Design Patterns - Elements of Reusable Object-Oriented Software)
Memento--- 备忘录存储Originator对象的内部状态。原发器根据需要决定备忘录存储原发器的哪些内部状态。--- 防止原发器以外的其他对象访问备忘录。备忘录实际上有两个接口,使用者只能看到备忘录的窄接口---它只能将备忘录传递给其他对象。相反,Originator能够看到一个宽接口,允许它访问返回到先前状态所需的所有数据。理想的情况是只允许生成本备忘录的内部状态。Origi...原创 2019-09-06 11:58:50 · 101 阅读 · 0 评论 -
Composite(Reference:Design Patterns - Elements of Reusable Object-Oriented Software)
Component--- 为组合中的对象声明接口--- 在适当的情况下,实现所有类共有接口的缺省行为--- 声明一个接口用于访问和管理Component的子组件--- 在递归结构中定义一个接口,用于访问一个父部件,并在合适的情况下实现它Leaf--- 在组合中表示叶节点对象,叶节点没有子节点--- 在组合中定义图元对象的行为Composite--- 定义有子部件...原创 2019-09-06 14:22:40 · 153 阅读 · 0 评论 -
ChainOfResponsibility(Reference:Design Patterns - Elements of Reusable Object-Oriented Software)
Handler--- 定义一个处理请求的接口--- (可选)实现后继链ConcreteHandler--- 处理它所负责的请求--- 可访问它的后继者--- 如果可处理该请求,就处理;否则将该请求转发给它的后继者。...原创 2019-09-06 15:59:49 · 85 阅读 · 0 评论 -
Iterator(Reference:Design Patterns - Elements of Reusable Object-Oriented Software)
Iterator--- 迭代器定义访问和遍历元素的接口。ConcreteIterator--- 具体迭代器实现迭代器接口--- 对该聚合遍历时跟踪当前位置。Aggregate--- 聚合定义创建相应迭代器对象的接口。ConcreteAggregate--- 具体聚合实现创建相应迭代器的接口,该操作返回ConcreteIterator的一个适当的实例。...原创 2019-09-07 15:22:35 · 187 阅读 · 0 评论 -
Command(Reference:Design Patterns - Elements of Reusable Object-Oriented Software)
Command--- 声明执行操作的接口ConcreteCommand--- 将一个接收者对象绑定与一个动作--- 调用接收者相应的操作,以实现Execute。Client--- 创建一个具体命令对象并设定它的接收者Invoker--- 要求该命令指向这个请求Receiver--- 知道如何实施与执行一个请求相关的操作。任何类都可能成为一个接收者。...原创 2019-09-07 16:34:59 · 69 阅读 · 0 评论 -
Visitor(Reference:Design Patterns - Elements of Reusable Object-Oriented Software)
Visitor--- 为对象结构中ConcreteElement的每一个类声明一个Visit操作!该操作的名字和特征标识了发送Visit请求给该访问者的类。使得访问者可以确定正在被访问元素的具体的类。这样访问者就可以通过该元素的特定接口直接访问它。ConcreteVisitor--- 实现每个由Visitor声明的操作。每个操作实现本算法的一部分,该算法是对应于结构中对象的类。Conc...原创 2019-09-07 17:41:46 · 123 阅读 · 0 评论 -
Proxy(Reference:Design Patterns - Elements of Reusable Object-Oriented Software)
Proxy--- 保存一个引用使得代理可以访问实体。若RealSubject和Subject的接口相同,Proxy会引用Subject--- 提供一个与Subject的接口相同的接口,这样代理就可以用来替代实体。--- 控制对实体的存取,并可能负责创建和删除它。Subject--- 定义RealSubject和Proxy的共用接口,这样就在任何使用RealSubject的地方都...原创 2019-09-05 14:58:38 · 111 阅读 · 0 评论 -
Facade(Reference:Design Patterns - Elements of Reusable Object-Oriented Software)
Facade--- 知道哪些子系统类负责处理请求--- 将客户的请求代理给适当的子系统对象Subsystem classes--- 实现子系统的功能--- 处理由Facade对象指派的任务--- 没有Facade的任何相关信息。...原创 2019-09-05 14:06:17 · 109 阅读 · 0 评论 -
Flyweight(Reference:Design Patterns - Elements of Reusable Object-Oriented Software)
Flyweight--- 描述一个接口,通过这个接口flyweight可以接受并作用于外部状态ConcreteFlyweight--- 实现Flyweight接口,并为内部状态(如果有的话)增加存储空间。ConcreteFlyweight对象必须是可共享的。它所存储的状态必须是内部的,即它必须独立于ConcreteFlyweight对象的场景。UnsharedConcreteFly...原创 2019-09-05 11:43:37 · 185 阅读 · 0 评论 -
Strategy(Reference:Design Patterns - Elements of Reusable Object-Oriented Software)
Strategy(策略)--- 定义所有支持的算法的公共接口。Context使用这个接口来调用某ConcreteStrategy定义的算法。ConcreteStrategy(具体策略)--- 以Strategy接口实现某具体算法。Context(上下文)--- 用一个ConcreteStrategy对象来配置--- 维护一个对Strategy对象的引用--- 可定义一个...原创 2019-09-03 10:27:22 · 79 阅读 · 0 评论 -
Observer(Reference:Design Patterns - Elements of Reusable Object-Oriented Software)
Subject(目标)--- 目标知道它的观察者,可以有任意多个观察者观察同一个目标--- 提供注册和删除观察者对象的接口Observer(观察者)--- 为那些在目标发生改变时需要获得通知的对象定义一个更新接口。ConcreteSubject(具体目标)--- 将有关状态存入各ConcreteObserver对象--- 当它的状态发生改变时,向其各个观察者发出通知。...原创 2019-09-03 12:02:51 · 84 阅读 · 0 评论 -
Decorator(Reference:Design Patterns - Elements of Reusable Object-Oriented Software)
Component--- 定义一个对象接口,可以给这些对象动态地添加职责ConcreteComponent--- 定义一个对象,可以给这个对象添加一些职责Decorator--- 维持一个指向Component对象的指针,并定义一个与Component接口一致的接口ConcreteDecorator--- 向组件添加职责...原创 2019-09-03 14:26:43 · 75 阅读 · 0 评论 -
Bridge(Reference:Design Patterns - Elements of Reusable Object-Oriented Software)
Abstraction--- 定义抽象类的接口--- 维护一个指向Implementor类型对象的指针RefinedAbstraction--- 扩充由Abstraction定义的接口Implementor--- 定义实现类的接口,该接口不一定要与Abstraction的接口完全一致,事实上这两个接口可以完全不同。ConcreteImplementor--- 实现I...原创 2019-09-03 17:31:54 · 82 阅读 · 0 评论 -
Factory Method(Reference:Design Patterns - Elements of Reusable Object-Oriented Software)
Product--- 定义工厂方法所创建的对象的接口ConcreteProduct--- 实现Product接口Creator--- 声明工厂方法,该方法返回一个Product类型的对象。Creator也可以定义一个工厂方法的缺省实现,它返回一个缺省的ConcreteProduct对象。--- 可以调用工厂方法以创建一个Product对象ConcreteCreator...原创 2019-09-04 09:58:00 · 92 阅读 · 0 评论 -
Abstract Factory(Reference:Design Patterns - Elements of Reusable Object-Oriented Software)
AbstractFactory--- 声明一个创建抽象产品对象的操作接口ConcreteFactory--- 实现创建具体产品对象的操作AbstractProduct--- 为一类产品对象声明一个接口ConcreteProduct--- 定义一个将被相应的具体工厂创建的产品对象--- 实现AbstractProduct接口...原创 2019-09-04 12:23:58 · 55 阅读 · 0 评论 -
Prototype(Reference:Design Patterns - Elements of Reusable Object-Oriented Software)
Prototype--- 声明一个克隆自身的接口ConcretePrototype--- 实现一个克隆自身的操作Client--- 让一个原型克隆自身从而创建一个新的对象原创 2019-09-04 13:57:16 · 103 阅读 · 0 评论 -
Builder(Reference:Design Patterns - Elements of Reusable Object-Oriented Software)
Builder--- 为创建一个Product对象的各个部件指定抽象接口ConcreteBuilder--- 实现Builder的接口以构造和装配该产品的各个部件--- 定义并跟踪它所创建的表示--- 提供一个检索产品的接口Director--- 构造一个使用Builder接口的对象Product--- 表示被构造的复杂对象。ConcreteBuilder创建该...原创 2019-09-04 14:51:48 · 204 阅读 · 0 评论 -
Singleton(Reference:Design Patterns - Elements of Reusable Object-Oriented Software)
Singleton--- 定义一个Instance操作,允许客户访问它的唯一实例。Instance是一个类操作--- 可能负责创建它自己的唯一实例。原创 2019-09-05 09:39:39 · 117 阅读 · 0 评论 -
Interpret(Reference:Design Patterns - Elements of Reusable Object-Oriented Software)
AbstractExpression--- 声明一个抽象的解释操作,这个接口为抽象语法树中所有的节点共享TerminalExpression--- 实现与文法中的终结符相关联的解释操作--- 一个句子中的每个终结符需要该类的一个实例NonterminalExpression--- 解析文法中的其他规则Context--- 包含解释器之外的一些全局信息...原创 2019-09-07 18:05:30 · 100 阅读 · 0 评论