设计模式 2018 程序啪啪啪
设计模式
以下图片多来自 非关语言: 设计模式.
Creational 模式
物件的产生需要消耗系统资源,所以如何有效率的产生、管理与操作物件,一直都是值得讨论的课题, Creational 模式即与物件的建立相关,在这个分类下的模式给出了一些指导原则及设计的方向。
Simple Factory 模式
所有对象到生成都是通过普通工厂进行,消除和屏蔽大面积到New方法。
http://qjg-wiki.googlecode.com/files/SimpleFactoryDP.jpg
Abstract Factory 模式
http://qjg-wiki.googlecode.com/files/AbstractFactoryDP.jpg
Builder 模式
http://qjg-wiki.googlecode.com/files/BuilderDP.jpg
Factory Method 模式
http://qjg-wiki.googlecode.com/files/FactoryMethodDP.jpg
Prototype 模式
http://qjg-wiki.googlecode.com/files/ProtoTypeDP.jpg
Singleton 模式
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {
// ....
}
public static Singleton getInstance() {
return instance;
}
// 其它实作
}
public class Singleton {
private static Singleton instance = null;
private Singleton(){}
public static Singleton getInstance() {
if (instance == null){
synchronized(Singleton.class){
if(instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}
http://qjg-wiki.googlecode.com/files/SingletonDP.jpg
Registry of Singleton 模式
Structural 模式
如何设计物件之间的静态结构,如何完成物件之间的继承、实现与依赖关系,这关乎着系统设计出来是否健壮(robust):像是易懂、易维护、易修改、耦合度低等等议题。 Structural 模式正如其名,其分类下的模式给出了在不同场合下所适用的各种物件关系结构。
Default Adapter 模式
http://www.riabook.cn/doc/designpattern/images/defaultAdapter-2.jpg
Adapter 模式 - Object Adapter
http://www.riabook.cn/doc/designpattern/images/adapter-2.jpg
Adapter 模式 - Class Adapter
http://www.riabook.cn/doc/designpattern/images/adapter-4.jpg
Bridge 模式
http://www.riabook.cn/doc/designpattern/images/bridge-4.jpg
Composite 模式
http://www.riabook.cn/doc/designpattern/images/composite-2.jpg
Decorator 模式
http://www.riabook.cn/doc/designpattern/images/decorator-3.jpg
Facade 模式
http://www.riabook.cn/doc/designpattern/images/facade-3.jpg
Flyweight 模式
http://www.riabook.cn/doc/designpattern/images/flyweight-1.jpg
Proxy 模式(一)
http://www.riabook.cn/doc/designpattern/images/proxy-2.jpg
http://www.riabook.cn/doc/designpattern/images/proxy-3.jpg
Proxy 模式(二)
Behavioral 模式
物件之间的合作行为构成了程式最终的行为,物件之间若有设计良好的行为互动,不仅使得程式执行时更有效率,更可以让物件的职责更为清晰、整个程式的动态结构(像是物件调度)更有弹性。
Chain of Responsibility 模式
http://www.riabook.cn/doc/designpattern/images/chainOfResponsibility-1.jpg
Command 模式
http://www.riabook.cn/doc/designpattern/images/command-2.jpg
Interpreter 模式
http://www.riabook.cn/doc/designpattern/images/interpreter-1.jpg
Iterator 模式
http://www.riabook.cn/doc/designpattern/images/iterator-2.jpg
Mediator 模式
http://www.riabook.cn/doc/designpattern/images/mediator-4.jpg
Memento 模式
http://www.riabook.cn/doc/designpattern/images/memento-1.jpg
Observer 模式
http://www.riabook.cn/doc/designpattern/images/observer-1.jpg
State 模式
http://www.riabook.cn/doc/designpattern/images/state-1.jpg
Strategy 模式
http://www.riabook.cn/doc/designpattern/images/strategy-2.jpg
Template Method 模式
http://www.riabook.cn/doc/designpattern/images/templateMethod-1.jpg
Visitor 模式
http://www.riabook.cn/doc/designpattern/images/visitor-1.jpg