来源:http://blog.csdn.net/shift_wwx/article/details/79086007
一、前言
网上已经有很多关于android设计模式相关的博文,总结的时候也借鉴它们,首先对于这些大神的分享表示感谢!
android长时间的开发工作,在一定的时候需要总结一下知识点是有必要的,其中设计模式对于coding能力的提高会起到至关重要的作用。这段时间会详细总结一下,以后会逐渐补充说明。
二、设计模式的起源
最早提出“设计模式”概念的是建筑设计大师亚力山大Alexander。在1970年他的《建筑的永恒之道》里描述了设计模式的发现,因为它已经存在了千百年之久,而现代才被通过大量的研究而被发现。
在《建筑的永恒之道》里这样描述:模式是一条由三个部分组成的通用规则:它表示了一个特定环境、一类问题和一个解决方案之间的关系。每一个模式描述了一个不断重复发生的问题,以及该问题解决方案的核心设计。
在他的另一本书《建筑模式语言》中提到了现在已经定义了253种模式。比如
尽管亚力山大的著作是针对建筑领域的,但他的观点实际上适用于所有的工程设计领域,其中也包括软件设计领域。
《Design Patterns: Elements of Reusable Object-Oriented Software》(即后述《设计模式》一书),由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著(Addison-Wesley,1995)。这几位作者常被称为"四人组(Gang of Four)"。
这本书一共列举了23种设计模式,所以,我们通常说GOF 23种设计模式。对软件设计模式的研究造就了一本可能是面向对象设计方面最有影响的书籍:《设计模式》。
三、软件设计模式的分类
1、创建型
创建对象时,不再由我们直接实例化对象;而是根据特定场景,由程序来确定创建对象的方式,从而保证更大的性能、更好的架构优势。创建型模式主要有简单工厂模式(并不是23种设计模式之一)、工厂方法、抽象工厂模式、单例模式、建造者模式和原型模式。
2、结构型
用于帮助将多个对象组织成更大的结构。结构型模式主要有适配器模式(adapter)、桥接模式(bridge)、组合器模式(component)、装饰器模式(decorator)、门面模式(facade)、亨元模式(flyweight)和代理模式(proxy)。
3、行为型
用于帮助系统间各对象的通信,以及如何控制复杂系统中流程。行为型模式主要有命令模式(command)、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式(observer)、状态模式(state)、策略模式(stragety)、模板模式(template)和访问者模式(vistor)。
总结基于Android 7.0版本。
1、工厂模式
2、单例模式
3、建造者模式(Builder模式)
4、原型模式
5、策略模式
6、状态模式
7、责任链模式
8、观察者模式
9、备忘录模式
10、模板方法模式
11、命令模式
12、适配器模式
13、代理模式(委托模式)
14、组合模式(部分整体模式)
15、桥接模式(桥梁模式)
16、门面模式(外观模式)
参考:
http://www.cnblogs.com/java-my-life/p/?page=1
http://www.cnblogs.com/qianxudetianxia/category/312863.html
http://blog.csdn.net/u012583459/article/details/47079529
http://blog.csdn.net/u012583459/article/details/47079549
https://www.cnblogs.com/android-blogs/p/5530239.html
https://www.cnblogs.com/Yogurshine/archive/2013/01/12/2858016.html
http://blog.csdn.net/jason0539/article/details/44956775
https://www.jianshu.com/u/cb3133f5a1bd
http://blog.csdn.net/lovelion/article/details/17517213