设计模式学习1 设计原则
设计原则
1.开闭原则
对扩展开放,修改关闭。在程序需要扩展的时候,不能去修改原有代码,实现一个热插拔的效果。为了使程序的扩展性好,易于维护和升级
为了达到这样的效果,我们需要使用接口和抽象类
2.里氏代换原则
任何基类可以出现的地方,子类一定可以出现。也就是子类继承父类时,除了添加新的方法完成新增功能外,尽量不要重写父类的方法
3.依赖倒转原则
高层模块不应该依赖低层模块,两者都应该依赖其抽象,抽象不应该依赖细节,细节应该依赖抽象。简单的说就是对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块之间的耦合
4.接口隔离原则
客户端不应该被迫依赖它不使用的方法;一个类对另一个类的依赖应该建立在最小的接口上
也就是可以把不同的方法抽象成不同的接口
5.迪米特法则
也叫最少知识原则
如果两个软件实体无需直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用,其目的是降低类之间的耦合度,提高模块的相对独立性
6.合成复用原则
尽量先使用组合或者聚合的关系来实现,其次才考虑继承关系
通常类的复用分为继承复用和合成复用
继承复用缺点:
- 破坏类的封装性
- 子类和父类的耦合度高
- 限制了复用的灵活性
合成复用可以将已有对象纳入新对象中,使之成为新对象的一部分,新对象可以调用已有对象的功能
合成复用的优点
- 维持了类的封装性
- 对象间的耦合度低
- 复用的灵活度高