设计模式——总介
分类
GoF总结出来23种设计模式,大体上可以分为3大类,分别从对象的创建、对象的结构及对象的行为这3个方面来总结代码编写经验。
第一大类:创建型模式
在程序设计中,如果将对象的创建和使用都放在客户程序中一起执行,首先会使得客户的资源效率占用很大;客户程序代码增大,又使得客户程序的维护费用加大。所以很多时候有必要把对象的创建与使用分离开来,创建型模式就是为了解决这类问题,正所谓“分而治之”,大家都省心。这样做也可以满足一些特殊的需求。
01.00 简单工厂模式(Simple Factory)
01.01 工厂方法模式(Factory Method)
01.02 抽象工厂模式(Abstract Factory)
01.03 创建者模式(Builder)
01.04 原型模式(Prototype)
01.05 单例模式(Singleton)
第二大类:结构型模式
优秀的系统,必然有良好的整体设计,系统设计包括静态设计与动态设计,结构型模式就是为了系统整体或者子系统静态关系方面的高内聚,松耦合;而行为型模式则是针对动态方面的。
02.01 外观模式(Facade)
02.02 适配器模式(Adapter)
02.03 代理模式(Proxy)
02.04 装饰模式(Decorator)
02.05 桥模式(Bridge)
02.06 组合模式(Composite)
02.07 享元模式(Flyweight)
第三大类:行为型模式
03.01 模版方法模式(Template Method)
03.02 观察者模式(Observer)
03.03 状态模式(State)
03.04 策略模式(Strategy)
03.05 职责链模式(Chain of Responsibility)
03.06 命令模式(Command)
03.07 访问者模式(Visitor)
03.08 调停者模式(Mediator)
03.09 备忘录模式(Memento)
03.10 迭代器模式(Iterator)
03.11 解释器模式(Interpreter)
学习设计模式的资源
(1) 设计模式开山之作:GoF的《设计模式》。
(2) 板里桥人的系列文章:http://www.jdon.com/designpatterns/index.htm。
(3) 林信良的系列文章:http://caterpillar.onlyfun.net/Gossip/DesignPattern/DesignPattern.htm。
(4) Alexander(亚历山大)的《建筑的永恒之道》。
(5) 埃克尔的《Java编程思想》。
(6) 郭志学的《易学——设计模式》。
(7) 程杰的《大话设计模式》。