软件设计的基本原则
1、开闭原则
核心思想是对扩展开发对更改封闭,方法的重点是抽象。
1.1、模板方法
基类中定义基本的算法结构及操作,操作可以是抽象也可以是具体的,子类实现基类中的抽象接口。
1.2、策略模式
1.3、适配器模式
1.4、观察者模式
2、依赖倒置原则
3、里氏替换原则
如果对每一个类型T1的对象o1都存在一个类似T2的对o2,使得在所有针对T2编写的程序P中用o1替换o2后,程序P的行为功能不变,则T1是T2的子类型。
不仅仅要满足IS-A的静态关系,还要满足在程序中,子类可以替换父类。是判断继承是否合理的原则。
不符合该原则的解决方案有:1、模板方法;2、组合(优先使用)
继承的缺点:
继承破坏了封装,因为继承将基类更多的细节暴露给子类,因而继承被称为“白盒复用”。
当基类发生改变时,可能会层层影响其下的子类。
继承是静态的,无法在运行时改变组合。
类数量的爆炸。
4、单一职责原则
一个类只能有一个引起它变化的原因。
职责的定义:一个职责是一个变化的原因。
5、接口隔离原则
不应该强迫客户程序依赖它们不需要的方法。可以通过多继承或者适配器模式来改进。
评论