设计原则

设计原则

单一职责原则

一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。

单一职责原则是实现高内聚、低耦合的指导方针。

开闭原则

开闭原则是面向对象的可复用设计的第一块基石,它是最重要的面向对象设计的原则。

一个软件实体应该对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展

为了满足开闭原则,需要对系统进行抽象化设计,抽象化是开闭原则的关键

里氏替换原则

里氏替换原则告诉我们,在软件中将一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常,反过来则不成立,如果一个软件实体使用的是一个子类对象的话,那么它不一定能够使用基类对象

例如:我喜欢动物,那我一定喜欢狗,因为狗是动物的子类;但是我喜欢狗,不能据此判定我喜欢动物,因为我并不喜欢老鼠,虽然它也是动物。

里氏替换原则是实现开闭原则的重要方式之一,由于使用基类对象的地方都可以使用子类对象,因此在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型,用子类对象来替换父类对象

依赖倒置原则

如果说开闭原则是面向对象设计的目标的话,那么依赖倒置原则就是面向对象设计的主要实现机制之一,它是系统抽象化的具体实现。

接口隔离原则

使用多个专门的接口,而不是使用单一的总接口,即客户端不应该依赖那些它不需要的接口。
每个接口应该承担一种相对独立的角色,不干不该干的事,该干的事都要干

迪米特法则

一个软件实体应当尽可能少地与其他实体发生交互作用
如果一个系统符合迪米特法则,那么当其中某一个模块发生修改时,就会尽量少地影响其他模块,扩展会相对容易,这是对软件实体之间通信的限制,迪米特法则要求限制软件实体支架通信的宽度和深度。迪米特法则可降低系统的耦合度,使类与类之间保持松散的耦合关系

SOLID

  • SPR 单一职责
  • OCP 开闭原则
  • LSP 里氏替换原则
  • ISP 接口隔离
  • DIP 依赖反转

你可能感兴趣的:(设计原则)