面向对象设计原则
面向对象设计的原则——开闭原则
内容:软件实体应当对扩展开放,对修改关闭。
通俗来讲,开闭原则就是软件系统中的各组件,应该能够在不修改现有内容的基础上,引入新功能。
为了达到开闭原则,对于类图的设计应该尽可能地使用接口或泛化进行封装,并且通过使用多态机制进行调用。接口和泛化的使用可以使操作的定义与实现分离,使得新添加的模块依赖于原有模块的接口。多态的使用使得在使用时可以通过创建父类的间接实例通过多态的支持进行操作,从而避免对其他类的修改。
面向对象设计的原则——里氏替换原则
内容:子类对于父类应该是完全可替换的。
具体来说,如果S是T的子类,则T类的对象可以被S类的对象所替代而不会改变该程序的任何理想特性。
我们都知道,子类的实例是父类的间接实例。根据多态原则,当父类创建一个间接实例时并调用操作时,将根据实际类型调用子类的操作实现。
面向对象设计的原则——依赖倒置原则
内容:高层次模块不应该依赖于低层次模块,二者都应该依赖于抽象;抽象不应该依赖于具体,具体应该依赖于抽象。
根据依赖倒置原则,从高层次到低层次之间设计类结构的方式应该是:高层次类抽象层低层次类。
在设计时,可以使用接口作为抽象层。
面向对象设计的原则——接口分离原则
内容:在系统中任何客户类都不应该依赖于他们不使用的接口。
当系统中需要接入许多个子模块时,相比于只使用一个接口,将其分成许多规模更小的接口是一种更好的选择,其中每一个接口服务于一个子模块。
应用接口分离原则降低了系统的耦合度,从而使系统更容易重构,改变并重新部署。
面向对象设计的原则——单一职责原则
内容:每个类都应该只含有单一的职责,并且该职责要由这个类完全封装起来。
一个类应该只有一个可以引起它变化的原因。
每个职责都是变化的一个中轴线,如果类有多个职责或职责被封装在了多个类里,就会导致系统的高耦合,当系统发生变化时,这种设计会产生破坏性的后果。
扫描二维码推送至手机访问