设计模式主要是基于以下的面向对象设计原则: (1)对接口编程而不是对实现编程; (2)优先使用对象组合而不是继承。 设计模式的六大原则:
1. 开闭原则
一个软件实体如类,模块,和函数应该对扩展开放,对修改关闭.在软件的生命周期内,因变化,升级和维护对原有代码进行修改,可能会引起错误.所以当软件发生变化时,通过扩展软件实体的行为来实现变化,而不是修改原有的代码. 为了满足开闭原则,需要对系统进行抽象化设计,抽象化是开闭原则的关键
2. 里氏替换原则
任何基类(父类)可以出现,子类一定可以出现.里氏代换原则是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正的被复用,而衍生类也能够在基类的基础上增加新的行为.里氏代换原则是对开闭原则的补充, 实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范.通俗的说就是:子类可以扩展父类的功能,但不能改变父类原有的功能
3. 单一职责原则
一个类只负责一项职责
4. 依赖倒置原则
高层模块不应该依赖底层模块,二者都应该依赖抽象.抽象不应该依赖细节,细节应该依赖抽象.通俗的讲就是;多用抽象的接口描述相同的动作,降低实现这个动作的人和物之间的耦合度
5. 接口隔离原则
客户端不应该依赖他不需要的接口,一个类对另一个类的依赖应该建立在最小的接口上
6. 迪米特法则
一个对象应该保持对其他对象最少的了解.类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对一个类的影响也越大.