面向对象设计原则:
● 针对接口编程,而不是针对实现编程; ● 优先使用对象组合,而不是类继承。 1、单一职责原则(SRP):一个类应仅有一个引起它变化的原因。 2、开放封闭原则(OCP):类模块应可扩展,不可修改。这里要说明一下,扩展和修改是不同的。比如:我们要在加一种ModelDuck,那么我们写一个ModelDuck的类继承Duck,这叫扩展,不是修改。什么是修改,就好像我们开始说的那种作法,为了加一个fly的功能,我们要把所有的子类中加入不同的实现,这叫修改。 3、Liskov替换原则:子类可替换基类。 4、依赖倒置原则:高层模块不依赖于低层模块,二者都依赖于抽象。
5、接口隔离原则:不强迫客户程序依赖于它们不用的方法(有道理,木头鸭子不会飞为什么要让它实现飞的功能。)
|