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