java培训
搜索分类

Java培训分享:应用开发SOLID设计原则了解多少

赋能网 2023-05-10 71


       SOLID指的是面向对象编程中的五条设计原则,旨在减少代码腐烂,提高软件的价值、功能和可维护性。坚实的原则有助于用户开发耦合较少的代码。如果代码是紧密耦合的,那么一组类是相互依赖的。为了更好的可维护性和可读性,应该避免这种情况。

1.单一责任原则(SRP)
       单一责任原则(SRP)规定,一个类改变的原因不应超过一个。这意味着代码中的每个类或类似结构应该只有一项任务要做。类的每件事都应该与这个单一的目的相关,这并不意味着类应该只包含一个方法或属性。
      可以有很多成员,只要他们与单一责任相关。可能是,当发生更改的一个原因时,类的多个成员可能需要修改,也可能是多个类需要更新。混合责任也使类更难理解和测试,降低了凝聚力。解决这一问题的最简单方法是将类划分为三个不同的类,每个类只有一个职责:数据库访问、计算薪酬和报告,所有这些都是分开的。
2.开放-封闭原则(OCP)
       开放-封闭原则(OCP)规定类应该为扩展而打开,但为修改而关闭。“开放扩展”意味着你应该设计类,以便在生成新需求时添加新功能。“为修改而关闭”意味着一旦开发了一个类,就不应该修改它,除非是为了纠正错误。
        该原则的这两部分似乎相互矛盾。但是,如果正确地构造类及其依赖项,则可以添加功能,而无需编辑现有源代码。通常,你通过引用依赖项的抽象(例如接口或抽象类)而不是使用具体类来实现这一点。可以通过创建实现接口的新类来添加功能。将OCP应用到项目中可以限制在编写、测试和调试源代码后更改源代码的需要。这降低了在现有代码中引入新错误的风险,从而产生更健壮的软件。
3.Liskov替换原则(LSP)

       Liskov替换原则(LSP)适用于继承层次结构,指定你应该设计类,以便在客户端不知道更改的情况下用子类替换客户端依赖项。因此,所有子类的操作方式都必须与其基类相同。子类的特定功能可能不同,但必须符合基类的预期行为。要成为真正的行为子类型,子类不仅必须实现基类的方法和属性,还必须符合其隐含的行为。

       通常,如果超类型的子类型做了超类型的客户机不期望的事情,那么这违反了LSP。想象一个派生类抛出一个超类没有抛出的异常,或者如果一个派生类有一些意外的副作用。基本上,派生类的性能不应该低于基类。

       违反LSP的典型示例是从矩形类派生的方形类。Square类始终假定宽度与高度相等。如果在预期为矩形的上下文中使用正方形对象,则可能会发生意外行为,因为不能(或者更确切地说不应该)单独修改正方形的尺寸。
4.接口隔离原则(ISP)
       接口隔离原则(ISP)规定,不应强迫客户依赖他们不使用的接口成员。当我们有非内聚接口时,ISP引导我们创建多个更小的内聚接口。应用ISP时,类及其依赖项使用紧密关注的接口进行通信,从而最大限度地减少对未使用成员的依赖,并相应地减少耦合。更小的接口更容易实现,提高了灵活性和重用的可能性。由于共享这些接口的类越来越少,因此响应接口修改所需的更改数量也会减少,从而提高了健壮性。
5.依赖倒置原则(DIP)
       依赖倒置原则(DIP)规定高级模块不应依赖于低级模块;它们应该依赖于抽象。其次,抽象不应依赖于细节;细节应该取决于抽象。我们的想法是将类隔离在它所依赖的抽象所形成的边界之后。如果这些抽象背后的所有细节都发生了变化,那么我们的类仍然是安全的。这有助于保持低耦合,使我们的设计更易于更改。DIP还允许我们单独测试事物。这些原则提供了一个有价值的标准,指导开发人员远离这种“代码腐朽”,转而构建为客户提供持久价值并为从事项目的未来开发人员提供理智的应用程序。

  想了解更多相关资讯请关注java培训频道-查看更多,了解相关专业课程信息您可在线咨询也可免费申请试课。关注赋能网了解更多:4008-569-579

发表评论
0评