一、23种设计模式系列导引
1、 23设计模式是什么?
设计模式(Design pattern): 是软件开发经验的总结,是软件设计中常见问题的典型解决方案。每个模式都像一个蓝图,您可以自定义以解决代码中的特定设计问题。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。
1995 年,GoF(Gang of Four,四人组/四人帮)合作出版了《设计模式:可复用面向对象软件的基础》一书,共收录了 23 种设计模式,从此树立了软件设计模式领域的里程碑,人称「GoF设计模式」。
GOF是设计模式的经典名著Design Patterns: Elements of Reusable Object-Oriented Software(中译本名为《设计模式——可复用面向对象软件的基础》)的四位作者,他们分为是:Elich Gamma、Richard Helm、Ralph Johnson、以及John Vlissides。 这四个人常被称为Gang of Four, 即四人组,简称Gof。
1.2 软件7大开发原则
设计原则 | 目的 | 一句话归纳 |
开闭原则(OC) | 降低维护带来的新风险 | 对扩展开放,对修改关闭 |
依赖倒置原则(DI) | 更利于代码结构的升级扩展 | 高层不应该依赖低层,要面向接口编程 |
单一职责原则SRP | 便于理解,提高代码的可读性 | 一个类只干一件事,实现类要单一 |
接口隔离原则 | 功能解耦,高聚合、低耦合 | 一个接口只干一件事,接口要精简单一 |
迪米特法则(最少依赖) | 只和朋友交流,不和陌生人说话,减少代码臃肿 | 不该知道的不要知道,一个类应该保持对其它对象最少的了解,降低耦合度 |
里氏替换原则 | 防止继承泛滥 | 不要破坏继承体系,子类重写方法功能发生改变,不应该影响父类方法的含义 |
合成复用原则 | 降低代码耦合 | 尽量使用组合或者聚合关系实现代码复用,少使用继承 |
2、 为什么要学习23设计模式?
我们不管学习什么,都是需要带着目的去学。因为我们知道学习到该知识,可以在现实生活中帮我们解决很多问题。
那么,23中设计模式能帮我们解决什么问题呢?
- 提高代码可复用性、可维护性、可读性、稳健性。
- 提高自己代码编写能力,代码设计能力
- 面试需要
- 能够编写框架时做知识储备
- 读懂别人编写的代码
- 吹牛逼~
3、 23设计模式
设计模式后续文章列表
- 简单工厂模式
- 工厂方法模式
- 单例模式
- 构造器模式
分类
分类 | 目的 |
创建型模式 | 关注点是“怎样创建对象”,特点是“将对象的创建与使用分离”,使用者不需要关注对象的创建细节,对象的创建由相关的工厂来完成 |
结构型模式 | 如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。 |
行为型模式 | 描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。 |
行为型模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分派行为,后者采用组合或聚合在对象间分配行为。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象行为模式比类行为模式具有更大的灵活性。
创建型模式
结构型模式
行为型模式
4、 23中设计模式总结