设计模式是经过高度抽象化的可以被反复使用的代码设计经验的总结。
正确的使用设计模式能有效提高代码的可读性、可重用性和可靠性,编写符合设计模式规范的代码不但有利于自身系统的稳定、可靠,还有利于外部系统的对接。
简介
设计模式是人们经过长期编程经验总结出来的编程思想。随着软件工程的不断演进,针对不同的需求,新的设计模式不断被提出(比如大数据领域中的数据分片思想),但设计模式的原则不会变。基于设计模式的原则,可以使用已有的设计模式,也可以根据成品或项目的开发需求在现有的设计模式基础上组合、改造或重新设计自己的设计模式。
设计模式的原则
1、单一职责原则
单一职责原则又叫单一功能原则,它规定一个类只有一个职责。如果有多个职责(功能)被设计在一个类中,就违反了单一职责原则。
2、开闭原则
开闭原则规定软件中的对象(类、模块、函数等)对扩展开放,对修改封闭,这意味着一个实体允许在不改变其源代码的前提下改变其行为,该特性在产品化的环境下是特别有价值的,在这种环境中,改变源代码需要经过代码审查、单元测试等过程,以确保产品的使用质量。遵循这个原则的代码在扩展是并不发生改变,因此不需要经历上述过程。
3、里式代换原则
里式代换原则是对开闭原则的补充,规定了在任意父类可以出现的地方,子类都一定可以出现。实现开闭原则的关键就是抽象化,父类与子类的继承关系就是抽象化的具体表现,所以里氏代换原则是对实现抽象化的具体步骤的规范。
4、依赖倒置原则
依赖倒置原则指程序要依赖于抽象(比如 java 中的抽象类和接口),而不依赖于具体的实现(比如 java 中的实体类)。简而言之,就是要求基于抽象编程,不要求对实现进行编程,降低了模块之间的耦合度。
5、接口隔离原则
接口隔离原则指通过将不同的功能定义 在不同的接口中来实现接口的隔离,这样就避免了其他类在依赖该接口(接口上定义的功能)时依赖其不需要的接口,可以减少接口之间依赖的冗余性和复杂性。
6、合成/聚合复用原则
合成/复用原则指通过在一个新的对象中引入(注入)已有的对象已达到类的功能复用和扩展的目的。希望尽量使用合成或聚合而不要使用继承来扩展类的功能。
7、迪米特法则
迪米特法则指一个对象尽可能少地与其他对象发生互相作用,即一个对象对其他对象应该有尽可能少的了解或依赖。使得模块独立,组合容易。