单一职责原则

java单一职责原则

定义:应该有且仅有一个原因引起类的变更,也就是接口或类和职责的关系是一一对应的。

解释:假定我们定义了一个类,他有很多的职能(行为),如果其中一个职能发生变化(你修改了其中一个方法),他是不是会影响其他类或方法的使用?

而如果你将其独立出来,你修改对其他的职能影响会降低到很小。

这样我们就实现了低耦合。

案例:

学习java的时候这样的类一定没有少写,但是在工作中你的经理却不会让你这样写,这又是为什么那?

 

在实际项目中,会有很多类,一个类承担的职责越多,它被复用的可能性就越小,而我们团队开发的时候代码复用,可读性,简洁性尤为重要。

思考:

还是上面的people,我们假定有一万个人,每一个人都是独特的,在一瞬间他们行为可能是相同的也可能是不同。在这一瞬间有一百万个可能,窝进棉被或面对寒冷.............................

 

按如此设计你将不用写一百万个类型的人,你只需要将这些人的行为定义出来即可。

总结:

  • 难点:职责的划分:
    • 在不同情景和生产环境下我们对职责的细化是不同的
    • 单一职责原则提出的是一个评价接口是否优良的标准

开发是将问题解决,但是每个人解决问题的方式是不同的,设计原则是将我们的思考方式统一的方式,当然这些经验都是前辈们趟雷过来的,所以我们理解遵守就好了。

深入:

有一个A类,具有一个方法;B类,也有一个方法;C类将A类和B类组合在一起实现了一个功能。请问是否遵守单一职责原则?

属于高内聚。

事物都是相对的,当在一个大的系统中,单一的职责可能有很多的组成。

所以说,需求才是爹。

杀死一个程序员的方法改3次需求就够了。

 

原文地址:https://www.cnblogs.com/jikjk/p/10507443.html