java吧 关注:1,212,545贴子:12,658,361
  • 6回复贴,共1
一些看书时不理解的问题,麻烦大家解答下,长期求助


IP属地:广东1楼2023-08-03 17:45回复
    单一职责原则中“把因相同原因而变化的东西聚合到一起,而把因不同原因而变化的东西分离开来”如何理解?最好举个例子


    IP属地:广东2楼2023-08-03 17:45
    回复
      萌新求助啊


      IP属地:广东来自Android客户端3楼2023-08-03 19:19
      回复
        比如添加和修改,一个接口就可以实现,新增不传id ,修改数据传id ,但是逻辑复杂就要拆分成两个接口


        IP属地:北京来自手机贴吧4楼2023-08-03 20:03
        回复
          单一职责原则(Single Responsibility Principle, SRP)是面向对象设计中的一个重要原则,它指出“一个类只应该有一个引起它变化的原因”。这个原则的核心思想是将一个类的功能划分清楚,避免一个类承担过多的职责。
          “把因相同原因而变化的东西聚合到一起,而把因不同原因而变化的东西分离开来”是在SRP的指导下,实现代码设计中的低耦合和高内聚的策略。它的意思是将那些因为同一个原因而有可能发生变化的东西放在一起,形成一个聚合体,而将那些因为不同原因而有可能发生变化的东西分离开来,实现代码的高内聚性,减少代码的耦合性。
          举个例子来说,假设有一个汽车类,它的职责是行驶。但是,如果在汽车类中还包含了其他的职责,比如维护保养、加油等,那么这个类就承担了过多的职责,就不符合SRP的原则。此时,我们可以将汽车类中的维护保养和加油等职责剥离出来,形成一个单独的维护保养类和加油类,这样就可以实现代码的高内聚性,减少代码的耦合性。
          另外,如果我们在设计一个类时,发现这个类需要根据不同的条件或情况执行不同的操作,那么这时候就需要将这些不同的操作封装到不同的类中,让这些类只负责自己的职责,避免一个类承担过多的职责,从而实现代码的低耦合性和高内聚性。


          IP属地:福建来自手机贴吧5楼2023-08-03 20:05
          回复
            @贴吧包打听 人工智障解答一下 单一职责原则中“把因相同原因而变化的东西聚合到一起,而把因不同原因而变化的东西分离开来”如何理解?最好举个例子


            IP属地:江苏来自Android客户端7楼2023-08-03 23:09
            回复
              回复7楼吧友 @耐摔王牢大v :单一职责原则是面向对象设计中的一条基本原则,它的核心思想是“每个类应该只有一个引起它变化的原因”。这样可以使类具有内聚性,并且减少类之间的耦合性。“把因相同原因而变化的东西聚合到一起,而把因不同原因而变化的东西分离开来”这句话的意思是,将具有相似功能或者数据的类、接口、方法等聚合在一起,使它们在相同的原因下发生变化,而将不同原因导致变化的东西分离开来,避免它们之间的耦合性。举个例子来说,假设有一个程序需要处理用户信息,包括用户的基本信息、联系方式、地址等。如果将这些信息都存储在一个类中,那么这个类就会因为不同的原因而发生变化,比如用户基本信息发生了变化、联系方式发生了变化、地址发生了变化等。这将导致这个类变得复杂,并且与其他类之间存在高度的耦合性,不利于程序的的可维护性和扩展性。为了避免这种情况,我们可以将不同的信息分离开来,例如将用户基本信息、联系方式、地址分别存储在不同的类中,这样每个类就只会在自己需要变化的原因下发生变化,而不会受到其他类的干扰。同时,这种方式还可以提高代码的可读性和可维护性,使代码更加清晰易懂。


              8楼2023-08-03 23:12
              回复