一、建设型模式
1、抽象工场模式(Abstract factory pattern): 提供一个接口, 用于建设相关或依赖工具的家属, 而不需要指定详细类.
2、生成器模式(Builder pattern): 利用生成器模式封装一个产物的结构进程, 并答允按步调结构. 将一个巨大工具的构建与它的暗示疏散, 使得同样的构建进程可以建设差异的暗示.
3、工场模式(factory method pattern): 界说了一个建设工具的接口, 但由子类抉择要实例化的类是哪一个. 工场要领让类把实例化推迟到子类.
4、原型模式(prototype pattern): 当建设给定类的实例进程很昂贵或很巨大时, 就利用原形模式.
5、单例了模式(Singleton pattern): 确保一个类只有一个实例, 并提供全局会见点.
6、多例模式(Multition pattern): 在一个办理方案中团结两个或多个模式, 以办理一般或反复产生的问题.
二、布局型模式
1、适配器模式(Adapter pattern): 将一个类的接口, 转换成客户期望的另一个接口. 适配器让原本接口不兼容的类可以相助无间. 工具适配器利用组合, 类适配器利用多重担任.
2、桥接模式(Bridge pattern): 利用桥接模式通过将实现和抽象放在两个差异的类条理中而使它们可以独立改变.
3、组合模式(composite pattern): 答允你将工具组合成树形布局来表示"整体/部门"条理布局. 组合能让客户以一致的方法处理惩罚个体工具以及工具组合.
4、装饰者模式(decorator pattern): 动态地将责任附加到工具上, 若要扩展成果, 装饰者提供了比担任更有弹性的替代方案.
5、外观模式(facade pattern): 提供了一个统一的接口, 用来会见子系统中的一群接口. 外观界说了一个高层接口, 让子系统更容易利用.
6、亨元模式(Flyweight Pattern): 如想让某个类的一个实例能用来提供很多"虚拟实例", 就利用蝇量模式.
7、署理模式(Proxy pattern): 为另一个工具提供一个替身或占位符以节制对这个工具的会见.
三、行为型模式
1、责任链模式(Chain of responsibility pattern): 通过责任链模式, 你可觉得某个请求建设一个工具链. 每个工具依序查抄此请求并对其举办处理惩罚可能将它传给链中的下一个工具.
2、呼吁模式(Command pattern): 将"请求"关闭成工具, 以便利用差异的请求,行列可能日志来参数化其他工具. 呼吁模式也支持可取消的操纵.
3、表明器模式(Interpreter pattern): 利用表明器模式为语言建设表明器.
4、迭代器模式(iterator pattern): 提供一种要领顺序会见一个聚合工具中的各个元素, 而又不袒露其内部的暗示.
5、中介者模式(Mediator pattern) : 利用中介者模式来会合相关工具之间巨大的相同和节制方法.
6、备忘录模式(Memento pattern): 当你需要让工具返回之前的状态时(譬喻, 你的用户请求"取消"), 你利用备忘录模式.
7、调查者模式(observer pattern): 在工具之间界说一对多的依赖, 这样一来, 当一个工具改变状态, 依赖它的工具城市收到通知, 并自动更新.
8、状态模式(State pattern): 答允工具在内部状态改变时改变它的行为, 工具看起来好象改了它的类.
9、计策模式(strategy pattern): 界说了算法族, 别离关闭起来, 让它们之间可以相互替换, 此模式让算法的变革独立于利用算法的客户.
10、模板要领模式(Template pattern): 在一个要领中界说一个算法的骨架, 而将一些步调延迟到子类中. 模板要领使得子类可以在不改变算法布局的环境下, 从头界说算法中的某些步调.
11、会见者模式(visitor pattern): 当你想要为一个工具的组合增加新的本领, 且封装并不重要时, 就利用会见者模式.
七大设计原则:
1、单一职责原则【SINGLE RESPONSIBILITY PRINCIPLE】:一个类认真一项职责.
2、里氏替换原则【LISKOV SUBSTITUTION PRINCIPLE】:担任与派生的法则.
3、依赖倒置原则【DEPENDENCE INVERSION PRINCIPLE】:高层模块不该该依赖低层模块,二者都应该依赖其抽象;抽象不该该依赖细节;细节应该依赖抽象。即针对接口编程,不要针对实现编程.
4、接口断绝原则【INTERFACE SEGREGATION PRINCIPLE】:成立单一接口,不要成立复杂臃肿的接口,只管细化接口,接口中的要领只管少.
5、迪米特法例【LOW OF DEMETER】:低耦合,高内聚.
6、开闭原则【OPEN CLOSE PRINCIPLE】:一个软件实体如类、模块和函数应该对扩展开放,对修改封锁.
7、组合/聚合复用原则【Composition/Aggregation Reuse Principle(CARP) 】:只管利用组合和聚合少利用担任的干系来到达复用的原则.
原文:http://luchunli.blog.51cto.com/2368057/1892885