一、前言
网上已经有很多关于android设计模式相关的博文,总结的时候也借鉴它们,首先对于这些大神的分享表示感谢!
android长时间的开发工作,在一定的时候需要总结一下知识点是有必要的,其中设计模式对于coding能力的提高会起到至关重要的作用。这段时间会详细总结一下,以后会逐渐补充说明。
二、设计模式的起源
最早提出“设计模式”概念的是建筑设计大师亚力山大Alexander。在1970年他的《建筑的永恒之道》里描述了投计模式的发现,因为它已经存在了千百年之久,而现代才被通过大量的研究而被发现。
在《建筑的永恒之道》里这样描述:模式是一条由三个部分组成的通用规则:它表示了一个特定环境、一类问题和一个解决方案之间的关系。每一个模式描述了一个不断重复发生的问题,以及该问题解决方案的核心设计。
在他的另一本书《建筑模式语言》中提到了现在已经定义了253种模式。比如
说明城市主要的结构:亚文化区的镶嵌、分散的工作点、城市的魅力、地方交通区
住宅团组:户型混合、公共性的程度、住宅团组、联排式住宅、丘状住宅、老人天地室内环境和室外环境、阴和阳总是一气呵成
针对住宅:夫妻的领域、儿童的领域、朝东的卧室、农家的厨房、私家的沿街露台、个人居室、起居空间的序列、多床卧室、浴室、大储藏室
针对办公室、车间和公共建筑物:灵活办公空间、共同进餐、共同小组、宾至如归、等候场所、小会议室、半私密办公室
尽管亚力山大的著作是针对建筑领域的,但他的观点实际上适用于所有的工程设计领域,其中也包括软件设计领域。“软件设计模式”,这个术语是在1990年代由Erich Gamma等人从建筑设计领域引入到计算机科学中来的。目前主要有23种。
三、软件设计模式的分类
1、创建型
创建对象时,不再由我们直接实例化对象;而是根据特定场景,由程序来确定创建对象的方式,从而保证更大的性能、更好的架构优势。创建型模式主要有简单工厂模式(并不是23种设计模式之一)、工厂方法、抽象工厂模式、单例模式、建造者模式和原型模式。
2、结构型
用于帮助将多个对象组织成更大的结构。结构型模式主要有适配器模式adapter、桥接模式bridge、组合器模式component、装饰器模式decorator、门面模式、亨元模式flyweight和代理模式proxy。
3、行为型
用于帮助系统间各对象的通信,以及如何控制复杂系统中流程。行为型模式主要有命令模式command、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式state、策略模式、模板模式和访问者模式。
总结基于Android 7.0版本。
1、工厂模式
2、单例模式
4、原型模式
5、适配器模式
6、代理模式
7、组合器模式
8、桥接模式
9、观察者模式
10、模板方法模式
11、策略模式
12、命令模式
参考:
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