Java设计模式系列内容,就现在,让设计模式如此简单。
Java设计模式系列文章
- Java 设计模式(一)《适配器模式》
- Java 设计模式(二)《建造者模式》
- Java 设计模式(三)《单例模式》
- Java 设计模式(四)《代理模式》
- Java 设计模式(五)《装饰器模式》
- ....
博客内容将与代码同时更新. 更新时间 : 2018年08月23日11:26:00
设计模式概述
1.1 引言
设计模式是程序员可以使用的形式化的最佳实践。解决应用程序或系统设计时的常见问题。学习这些模式有助于经验不足的开发人员通过一种简单快捷的方式来学习软件设计。
1.2 简介
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。
设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理地运用设计模式可以完美地解决很多问题,每种模式在现实中都有相应的原理来与之对应,每种模式都描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是设计模式能被广泛应用的原因。
设计原则
所有的设计都应该越简单越好,应该从KISS、YAGNI原则开始,做一些简单的事情,复杂的东西和模式,要在适合它的时候在去引用,注意扩展性。
YAGNI 原则是 You aren't gonna need it 的缩写,意思是"你不会需要它"
KISS 原则是英语 Keep It Simple,Stupid 的缩写,是指在设计当中应当注重简约的原则
架构一切从简,舍弃一切你不需要的东西,当你需要的时候在去积极的重构,快速的迭代进去。
设计遵循的六大原则
1. 开闭原则(Open Close Principle)
开闭原则是指:对扩展开放,对修改关闭 ,在程序需要进行扩展的时候,不可以修改源码,需要实现一个热插拔的效果。
为了是程序的扩展性好,易于维护和升级,想要达到这种效果,我们就需要去使用接口和抽象类。
2. 里氏代换原则(Liskov Substitution Principle)LSP
里氏代换原则是面向对象的设计原则之一,里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。
LSP是继承复用的基石,<font color=red>只有当派生类可以替换掉基类</font>并且<font color=red>软件的单位的功能不受影响时</font>,基类才可能才能真正的被复用,而且派生类也能够在基类的基础上增加新的行为。里氏代换原则是对开闭原则的补充。实现开闭原则的关键就在于抽象化。而基类与子类的继承关系就是抽象化的具体实现。所以里氏代换原则是对实现抽象化的步骤的规范。
3. 依赖倒转原则(Dependence Inversion Principle)
这个原则是开闭原则的基础,具体内容就是:针对接口编程,依赖于抽象而不是具体实现。
4. 接口隔离原则(Interface Segregation Principle)
这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。
减低类之间的耦合度。通过这个设计原则,我们知道,设计模式就是从大型软件架构出发、便与升级和维护的软件设计思想,它强调降低依赖,降低耦合。
5. 迪米特法则(最少知道原则 Demeter Principle)
最少知道原则是指:一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块间相互独立。
6. 合成复用原则(Composite Reuse Principle)
合成复用原则是指:尽量使用合成/聚合的方式,而不是使用继承。
参考内容