首页 课程 师资 教程 报名

带你了解面向对象的设计原则

  • 2022-11-10 09:55:50
  • 468次 星辉

相信大家对什么是面向对象编程已经有所了解,那么,面向对象的设计原则是什么?星辉小编来告诉大家。

带你了解面向对象的设计原则

什么是软件设计原则?

软件设计原则代表了一组指导方针,可以帮助我们避免糟糕的设计。这些设计原则与 Robert Martin 相关,后者将它们收集在“敏捷软件开发:原则、模式和实践”中。根据 Robert Martin 的说法,应该避免糟糕设计的 3 个重要特征:

刚性——很难改变,因为每一次改变都会影响系统的太多其他部分。

脆弱性 - 当您进行更改时,系统的意外部分会中断。

不可移动性 - 很难在另一个应用程序中重用,因为它无法与当前应用程序分离。

开闭原则

类、模块和函数等软件实体应该对扩展开放,对修改关闭。

OPC是一个通用原则。您可以在编写类时考虑它,以确保当您需要扩展它们的行为时,您不必更改类而是扩展它。相同的原则可以应用于模块、包、库。如果你有一个包含一组类的库,有很多原因你会更喜欢在不更改已经编写的代码的情况下对其进行扩展(向后兼容性、回归测试、...)。这就是为什么我们必须确保我们的模块遵循开放封闭原则。

当提到类时,可以通过使用抽象类和具体类来实现它们的行为来确保打开关闭原则。这将强制让具体类扩展抽象类而不是更改它们。这方面的一些特殊情况是模板模式和策略模式。

依赖倒置原则

高级模块不应该依赖于低级模块。两者都应该依赖于抽象。

抽象不应该依赖于细节。细节应该取决于抽象。

依赖倒置原则指出我们应该将高层模块与低层模块解耦,在高层类和低层类之间引入一个抽象层。此外,它反转了依赖关系:我们应该基于抽象来编写细节,而不是基于细节来编写抽象。

依赖倒置或控制倒置是更广为人知的术语,指的是实现依赖的方式。以经典方式,当软件模块(类、框架、...)需要某个其他模块时,它会初始化并持有对它的直接引用。这将使 2 个模块紧密耦合。为了将它们解耦,第一个模块将提供一个钩子(一个属性、参数、...),一个控制依赖关系的外部模块将注入对第二个模块的引用。

通过应用依赖反转,其他模块可以很容易地更改模块,只需更改依赖模块即可。工厂和抽象工厂可以用作依赖框架,但有专门的框架,称为控制容器反转。

接口隔离原则

不应强迫客户依赖他们不使用的接口。

这个原则教会我们注意如何编写接口。当我们编写接口时,我们应该注意只添加应该存在的方法。如果我们添加不应该存在的方法,那么实现接口的类也必须实现这些方法。例如,如果我们创建一个名为 Worker 的接口并添加一个方法 lunch break,则所有工作人员都必须实现它。如果工人是机器人怎么办?

结论包含非特定方法的接口称为污染接口或胖接口。我们应该避免它们。

单一职责原则

一个类应该只有一个改变的理由。

在这种情况下,责任被认为是改变的一个原因。该原则表明,如果我们有 2 个理由更改一个类,我们必须将功能拆分为两个类。每个类将只处理一项职责,如果我们需要进行一项更改,我们将在处理它的类中进行更改。当我们需要对具有更多职责的类进行更改时,更改可能会影响类的其他功能。

Liskov 的替代原则

派生类型必须完全可以替代它们的基类型。

这个原则只是开闭原则在行为方面的扩展,这意味着我们必须确保新的派生类在不改变其行为的情况下扩展基类。新的派生类应该能够替换基类而不需要对代码进行任何更改。

通过上述介绍,相信大家对面向对象的设计原则已经有所了解,大家如果想了解更多相关知识,不妨来关注一下本站的面向对象设计原则技术文档,里面还有更详细的介绍等着大家去了解,相信对大家一定会有所帮助的。

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交