Studying notes(to be continued).
Catalog:
1.Creational Patterns
a.Abstract Factory
b.Builder
c.Factory Method
d.Prototype
e.Singleton
2.Structual Patterns
a.Adapter
b.Bridge
c.Composite
d.Decorator
e.Facade
f.Flyweight
g.Proxy
3.Behavioral patterns
a.Chain of Responsibility
b.Command
c.Interpreter
d.Iterator
e.Mediator
f.Observer
g.State
h.Strategy
i.Template Method
1.FactoryMode
a.SimpleFactoryMode
将简单类抽象化,通过不同参数生产出不同产品。
b.FactoryMethod
将工厂抽象化,通过不同的工厂生成不同的产品,将产品差异通过工厂来体现。
c.Abstract FactoryMode
工厂抽象、产品抽象。不仅生产A1,A2,还可以生产B1,B2.
2. Builder
Builder和factory类似。但是其不是返回一个产品。而是通过一个中间类,完成一系列子产品序列,返回一个完整的产品。
区别:
builder返回的通常是一个多个子产品组合的产品。
builder和工厂直接有一个组合的中间类。
Client->Director->BuilderProductA
BuilderProductB
BuilderProductC
3. Prototype 模式
复制一个对象,要求其实现clone和serialize接口
4. Adapter
针对特定接口对现存类进行包装(改变接口)
5.Bridge
不同抽象类接口相互转换
和Adapter区别,双向转换,adapter单向。
6.Facade 外观
和Adapter区别
Adapter对现有接口一对一包装,包装功能一致,而Facade会增加接口,可以认为是容器。
和Decorator区别
会隐藏接口,Decorator不会改变原来接口
7.Proxy
作为中介作用,通常用于client不能或者不想做的事情
和Adapter区别,proxy提供的接口和其代理的接口一致,而adapter不一定(比如数据库到文件系统代理)
和Bridge区别,Proxy是单向的,Bridge双向。
8.Decorator
给对象增加一些新功能
和Facade区别,Facade可能隐藏接口,Decorator不会改变原来接口
9.Iterator
提供一个顺序访问集合内部元素方法,而不暴露该对象内部表示。
10.Obserber Mode
用于一对多的依赖,当一个对象发生变化的时候,所有依赖于他的对象都得到通知。
uml relationship