OOP面向对象的七大设计原则

 

一. 开闭原则 OCP(Open-Closed Principle)

核心思想:对扩展开发,对修改关闭。

好处:可以提高代码的可复用性。可以提高代码的可维护性。

 

二.里氏代换原则 LSP(Liskov Substitution Principle)

核心思想:继承必须确保超类所拥有的性质在子类中仍然成立。在任何父类出现的地方子类都可以替换。

好处:克服了继承中重写父类造成的可复用性变差的问题。

  

三. 依赖倒置原则 DIP(Dependency Inversion Principle)
核心思想:要面向接口编程,不要面向实现编程。降低各个对象之间的耦合,提高系统的可维护性。

好处:降低类之间的耦合性。提高系统的稳定性。减少并行开发引起的风险。提高代码的可读性和可维护性。

 

四. 单一职责原则 SRP(Single Resposibility Principle)

核心思想:一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分。

也就是说每个类应该只有一个职责,对外提供一种职能,而引起类变化的原因应该只有一个。

好处:降低类的复杂度。一个类只负责一项职责,其逻辑肯定要比负责多项职责简单得多。

五.接口隔离原则 ISP(Interface Insolation Principle)

核心思想:一个接口不需要提供太多的行为,一个接口应该只提供一种对外的功能,不应该把所有的操作都封装到一个接口中。

好处:提高系统的灵活性和可维护性。接口隔离提高了系统的内聚性,减少了对外交互,降低了系统的耦合性。

 

六.迪米特法则 LoD(Law Of Demeter or Principle of Least Knowledge)
核心思想:一个类对于其他类知道的越少越好,就是说一个对象应当对其他对象有尽可能少的了解,只和朋友通信,不和陌生人说话。

好处:降低了类之间的耦合度,提高了模块的相对独立性。由于亲合度降低,从而提高了类的可复用率和系统的扩展性。

 

七.合成复用原则 CRP(Composite Reuse Principle)

核心思想:复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。

好处:通常类的复用分为继承复用和合成复用两种。继承复用虽然简单易实现。新旧类之间的耦合度低。复用的灵活性高。

 

八.总结-各种原则要求的侧重点不同:

开闭原则:对扩展开放,对修改关闭。

里氏替换原则:不要破坏继承体系。

依赖倒置原则:要面向接口编程。

单一职责原则:实现类要职责单一。

接口隔离原则:设计接口的时候要精简单一。

迪米特法则:要降低耦合度。

合成复用原则:要优先使用组合或者聚合关系复用,少用继承关系复用。

 

--学无止境,爱拼才会赢

posted @ 2022-09-19 12:21  struggle-way  阅读(76)  评论(0编辑  收藏  举报