目录
概述
原则
分类
项目练习源码
参考
设计模式具体来说可以被称为GOF设计模式,是1995 年,GoF(Gang of Four,四人组/四人帮)合作出版了
《设计模式:可复用面向对象软件的基础》一书,共收录了 23 种设计模式,从此树立了软件设计模式领域的里程碑
设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。
它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案
设计模式的本质是面向对象设计原则的实际运用,是对类的封装性、继承性和多态性,以及类的关联关系和组合
关系的充分理解。
开闭原则
开闭原则由勃兰特·梅耶(Bertrand Meyer)提出,他在 1988 年的著作《面向对象软件构造》中提出:
软件实体应当对扩展开放,对修改关闭。这就是开闭原则的经典定义。
里氏替换原则
里氏替换原则主要阐述了有关继承的一些原则,以及其中蕴含的原理。它反映了基类与子类之间的关系,
是对开闭原则的补充,是对实现抽象化的具体步骤的规范。
依赖倒置原则
高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象
其核心思想是:要面向接口编程,不要面向实现编程。
单一职责原则
单一职责原则又称单一功能原则,由罗伯特·C.马丁(Robert C. Martin)在《敏捷软件开发:原则、模式和实践》中提出
这里的职责是指类变化的原因,单一职责原则规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分
接口隔离原则
此原则主要是要为各个类建立它们需要的专用接口,而不要试图去建立一个很庞大的接口供所有依赖它的类去调用。
迪米特法则
此原则的含义是如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。
其目的是降低类之间的耦合度,提高模块的相对独立性。
合成复用原则
合成复用原则又叫组合/聚合复用原则,它要求在软件复用时,要尽量先使用组合或者聚合等关联关系来实现
其次才考虑使用继承关系来实现,如果要使用继承关系,则必须严格遵循里氏替换原则。
合成复用原则同里氏替换原则相辅相成的,两者都是开闭原则的具体实现规范。
创建型模式
创建型模式的主要关注点是“怎样创建对象?”,它的主要特点是“将对象的创建与使用分离”。
这样可以降低系统的耦合度,使用者不需要关注对象的创建细节
结构型模式
结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,
前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。
行为型模式
行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成
单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。
范围 | 创建型 | 结构型 | 行为型 |
---|---|---|---|
类 | Factory Method(工厂方法) | Adapter(类) (适配器) | Interpreter(解释器) Template Method(模版方法) |
对象 | Abstract Factory(抽象工厂) Builder(建造者) Prototype(原型) Singleton(单例) |
Bridge(桥接) Composite(组合) Decorator(装饰者) Façade(外观) Flyweight(享元) Proxy(代理) |
Chain of Responsibility(职责链) Command(命令) Iterator(迭代器) Mediator(中介者) Memento(备忘录) Observer(观察者) State(状体) Strategy(策略) Visitor(访问者) |
项目放在了码云上面,项目也是开始阶段,后期会慢慢完善,有兴趣的可以看下
HTTPS地址:https://gitee.com/Coder_Light/design-pattern.git
SSH地址:[email protected]:Coder_Light/design-pattern.git
菜鸟教程——设计模式
http://www.runoob.com/design-pattern/design-pattern-tutorial.html
Java设计模式:23种设计模式全面解析(超级详细)
http://c.biancheng.net/design_pattern/
别的博主总结的,写的挺详细的
https://blog.csdn.net/wwwdc1012/column/info/27107