设计模式
2019-09-22 12:51:14 0 举报
HeadFirst 设计模式
作者其他创作
大纲/内容
《interface》Command
execute()undo()
<interface>Observer
update()
子系统的类
命令模式将请求封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也可以支持可撤销的操作。
ConcreteFactory2
createProductA()createProductB()
<interface>Subject
request()
Product
复合模式结合两个或以上的模式,组成一个解决方案,解决一再发生的一般性问题。
ProductA1
Quack
quack()
观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,他的所有依赖者都会收到通知,并自动更新。
FlyNoWay
fly()
ConcreteComponentB
Component wrappedObj;
methodA()methodB()
Adaptee
specificRequest()
Adapter
Adaptee adaptee
DecoyDuck
diapaly()
<interface>Aggregate
createlterator()
registerObserver()removeObserver()notifyObserver()
工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。
ProductB1
Client
ProductA2
<interface>Target
Composite
add(Component)remove(Componet)getChild(int)operation()
State
handle()
状态模式允许对象在内部状态改变时改变他的行为,对象看起来好像修改了它的类
ConcreteObserver
AbstractProductA
Duck
FlyBehavior flyBehaviorQuackBehavior quackBehavior
swim()dispaly()performQuack()performFly()setxxx()
ConcreteStateA
代理模式为另一个对象提供一个替身或占位符以控制对这个对象的访问
ConcreteProduct
ConcreteClass
primitiveOperation1()primitiveOperation2()
ConcreteAggregate
createIterator()
RubberDuck
Facade
F
E
单件模式确保一个类只有一个实例,并提供一个全局访问点实现方式:双重检查锁,懒汉模式、饿汉模式
ConcreteStateB
<interface>FlyBehavior
AbstractProductB
Decorator
RecheadDuck
display()
MuteQuack
对象适配器
组合模式允许你将对象组合成树形结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。
Receiver
action
Context
State state
request(){ stat.handler()}
抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不是需要明确指定具体类
ConcreteIterator
hasNext()next()remove()
类适配器
<interface>QuackBehavior
MallardDuck
装饰者模式动态的将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。
AbstractClass
templateMethod(){primitiveOperation1();primitiveOperation2();}primitiveOperation1()primitiveOperation2()
迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。
模板方法模式在一个方法中定义了一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
RealSubject
B
Component
operation()add(Component)remove(Component)getChild(int)
策略模式定义了算法族,分别封装起来,让他们可以相互替换,此模式让算法的变化独立于使用算法的客户。
1:n
FlyWithWings
ProductB2
Proxy
《interface》AbstractFactory
ConcreteCommand
ConcreteSubject
getState()
ConcreteComponent
ConcreteComponentA
外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更加容易使用。
Leaf
operation()
适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原来不兼容的类可以合作无间。
Invoker
serCommand()
<interface>Iterator
ConcreteCrator
factoryMethod()
Squeak
ConcreteFactory1
Creator
factoryMethod()anOperation()
D
C
A
0 条评论
下一页