面向对象设计中常见的设计原则
开闭原则
单一职责原则
里氏替换原则
依赖倒置原则
接口隔离原则
最少知识原则(迪米特法则)
少用继承多用组合(合成复用原则)
一.开闭原则
定义:一个软件实体应当对外扩展开放,对内关闭修改,即在设计一个模块的时候,应当使这个模块可以在不被修改的前提下可扩展。
作用:(1)只对扩展代码进行测试,源代码依然可以运行。
(2)使代码具有优质的可扩展性和维护性。
实现方法:可以通过**“抽象约束、封装变化”**来实现开闭原则,即通过接口或者抽象类为软件实体定义一个相对稳定的抽象层,而将相同的可变因素封装在相同的具体实现类中。
举例:
客户需要一个减法软件:客户——>减法。
然后客户现在需要加法软件——>加法(在减法的基础上将改为加法)。
上述这种做法是错误的,违背了开闭原则,对源代码进行了修改!我们应该抽象出一个运算类或者声明一个运算法则,里面包括加法或者减法,当然也可以包括其它的!