菜单
菜单
文章目录
  1. 设计原则
    1. 1.设计目标
    2. 2.软件复用的重要性
    3. 3.方法
    4. 4.七大原则
      1. 1.开闭原则OCP:Open-ClosedPrinciple
      2. 2.依赖倒转原则DIP:DependencyInversion Principle
      3. 3.单一职责原则(SRP)
      4. 4.里氏替换原则LSP:LiskovSubstitution Principle
      5. 5.组合复用原则CRP:CompositoinResuse Principle
      6. 6.迪米特法则LoD:Lawof Demeter
      7. 7.接口隔离原则ISP:InterfaceSegregation Principle

面向对象复习(五)

设计原则

1.设计目标

  • 可扩展性(Extensibility):新功能易加入系统。

  • 灵活性(Flexibility):允许代码修改平稳发生,不会涉及很多其他模块。

  • 可插入性(Pluggability):容易将一个类换为另一个具有同样接口的类。

2.软件复用的重要性

  • 较高的生产率
  • 较高的软件质量
  • 恰当使用复用,可改善系统的可维护性

3.方法

  • 使一个系统可在更高的层次上提供了可复用性
  • 抽象化和继承:使概念和定义可复用
  • 多态:使实现和应用可复用
  • 抽象化和封装:可保持和促进系统的可维护性

4.七大原则

1.开闭原则OCP:Open-ClosedPrinciple

软件组成实体应该是对扩展开放的,但是对修改是关闭的。

“开”,是允许对其进行功能扩展的;

“闭”,是指对于原有代码的修改是封闭的,即不应该修改原有的代码。

优点:

​ 可复用性好:提高适应性 、 灵活性

​ 可维护性好:

2.依赖倒转原则DIP:DependencyInversion Principle

​ 抽象不应当依赖于细节,细节应当依赖于抽象。

​ 针对接口编程

​ 要针对接口编程

​ 不要针对实现编程

3.单一职责原则(SRP)

​ 一个类只负责一项职责。

4.里氏替换原则LSP:LiskovSubstitution Principle

​ 一个软件如果使用的是一个父类的话,如果把该父类换成子类,它不能察觉出父类对象和子类对象的区别

​ 也就是凡是父类适用的地方子类也适用

​ 继承只有满足里氏代换原则才是合理的

5.组合复用原则CRP:CompositoinResuse Principle

​ 优先使用(对象)组合,而非(类)继承

6.迪米特法则LoD:Lawof Demeter

​ 一个对象应该对其他对象尽可能少的了解

7.接口隔离原则ISP:InterfaceSegregation Principle

​ 使用多个专门的接口比使用单一的总接口好。

​ 一个类对另一个类的依赖性应建立在最小的接口上