1.前言
刚开始学Java这种面向对象的编程语言的时候,就开始看设计模式,感觉非常难以理解,所以就放下不看了。后来在做的项目多了,在项目源码中慢慢发现有些设计模式,发现设计模式真的是很有用的东西,使项目架构布局更加合理,容易理解,足够健壮,足够稳定,扩展也非常方便,利于代码的重用。作为小白的我,又开始回去研究设计模式了。这次重新学习,感觉非常的轻松,应该是使用java的时间长了,学习的知识多了,再看以前比较难以理解的东西,就不是那么难懂了。所以学习的路线,应该是先广,后深,对大局的有个了解,然后需要什么的时候再深入研究学习。
2.正文
2.1 23种设计模式
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。作为一名架构师,懂得如何在项目中灵活合理使用设计模式,是必备的技能之一。
GoF(Gang of Four,四人组),他们1995年出版的《设计模式》一书,第一次将设计模式提升到理论高度,并将之规范化。书中一共总结了23种基本的设计模式。而这23中设计模式几乎涵盖了面向对象设计过程中所有问题的解决方案。书中提到的23种设计模式分别是:
- 单例模式
- 工厂方法模式
- 抽象工厂模式
- 模版方法模式
- 建造者模式
- 代理模式
- 原型模式
- 中介者模式
- 命令模式
- 责任链模式
- 装饰模式
- 策略模式
- 适配器模式
- 迭代器模式
- 组合模式
- 观察者模式
- 门面模式
- 备忘录模式
- 访问者模式
- 状态模式
- 解释器模式
- 享元模式
- 桥梁模式
2.2 设计模式起源
设计模式的起源是面向对象程序设计思想,是面向对象设计的精髓——抽象。面向对象通过类和对象来实现抽象,实现时产生了面向对象的三个重要机制:封装、继承、多态。正是这三个机制衍生出了各种各样的设计模式。在面向对象软件设计的发展过程中,除了《设计模式》一书中提到的23中设计模式之外,新的设计模式仍然不断出现。
2.3 面向对象的软件设计原则
从面向过程到面向对象是软件设计诞生以来的迈出的最伟大的一步,面向对象程序设计成功解决了面向过程软件编程的低效率问题,并且彻底改变了人们的编程思维,为软件设计揭开了新的篇章。然而,要实现面向对象设计,彻底摆脱面向过程设计思维,并不仅仅是只要使用了一门面向对象的编程语言就能够达到的。使用面向对象设计,可以设计出优秀的软件,同样也可以设计出糟糕的软件。只有遵循一些特定的原则,才能设计出复用性高灵活性好的软件来。
在运用面向对象的思想进行软件设计时,需要遵循的原则一共有6个:
- 单一职责原则(Single Responsibility Principle)
- 里氏替换原则(Liskov Substitution Principle)
- 依赖倒置原则(Dependence Inversion Principle)
- 接口隔离原则(Interface Segregation Principle)
- 迪米特法则(Law Of Demeter)
- 开闭原则(Open Close Principle)
在软件设计的过程中,只要我们尽量遵循以上六条设计原则,设计出来的软件一定会是一个优秀的软件,它必定足够健壮、足够稳定,并以极大的灵活性来迎接随时而来的需求变更等因素。
3.参考资料
1.设计模式