本文已参与「新人创作礼」活动,一起开启掘金创作之路。
背景
设计模式最早出现在建筑领域,是克里斯托弗.亚历山大在建筑施工时对环境中不断出现的问题,进行分析总结,整理出相对应的解决方案。之后再遇到同样的问题,就可以把对应的方案拿出来,直接使用就可以了。
直到1994年,一本名为《设计模式-可重用的面向对象软件元素》的图书发表,该书在软件开发中开创了设计模式的概念,第一次将设计模式提升到理论高度,并将之规范化,随后被广泛应用。
概念
设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案
优点
- 设计模式可以让你的程序体现出更好的代码重用性,可靠性,可读性,可维护性,可以让程序体现出高内聚,低耦合的特性
- 代码重用性:即相同功能的代码,一次编写,多处使用
- 可读性:即编码的规范性
- 可扩展性:即可维护性,当需要增加新功能的时候,成本非常低,可扩展性就非常高
- 可靠性:即代码健壮性,当需要增加新功能的时候,对原来的程序没有影响
- 掌握了设计模式,去看一些开源项目的源码,有助于自己技术的提升
- 当遇到系统需要重构的时候,设计模式可以很好的给我们指明方向
七大原则
单一职责原则
类的职责要单一,不能将太多的职责放在一个类中
开闭原则
软件实体对扩展是开放的,但对修改是关闭的,即在不修改一个软件实体的 基础上去扩展其功能
里氏代换原则
在软件系统中,一个可以接受基类对象的地方必然可以接受一个子类对象
依赖倒置原则
要针对抽象层编程,而不要针对具体类编程
接口隔离原则
使用多个专门的接口来取代一个统一的接口
合成复用原则
在系统中应该尽量多使用组合和聚合关联关系,尽量少使用甚至不使用继承关系
迪米特原则
一个软件实体对其他实体的引用越少越好,或者说如果两个类不必彼此直接 通信,那么这两个类就不应当发生直接的相互作用,而是通过引入一个第三 者发生间接交互
总结
该篇文章我们了解了设计模式的出现发展,以及优点,并引出了使用设计模式需要遵守的七大原则及各个原则的简单介绍。
预告
后面的文章我们进行一一分析,下篇我们需要分析的是单一职责原则,敬请期待!