最近准备java面试,发现SSM框架里蛮多知识点,比如Spring中IOC,DI来源于面向对象的六大原则,了解六大原则有助于更深入理解java的设计原理。网上资料很多,整理下六大设计原则,总结如下:
原作者博客链接1
原作者博客链接2
一.单一职责原则(SRP)
原文链接
单一职责原则,英文缩写SRP,全称Single Responsibility Principle。
原始定义:There should never be more than one reason for a class to change。
官方翻译:应该有且仅有一个原因引起类的变更。简单点说,一个类,最好只负责一件事,只有一个引起它变化的原因。
原理解释
上面的定义不难理解,引起类变化的原因不能多于一个。也就是说每一个类只负责自己的事情,此所谓单一职责。
我们知道,在OOP里面,高内聚、低耦合是软件设计追求的目标,而单一职责原则可以看做是高内聚、低耦合的引申,将职责定义为引起变化的原因,以提高内聚性,以此来减少引起变化的原因。
其实在软件设计中,要真正用好单一职责原则并不简单,因为遵循这一原则最关键的地方在于职责的划分,(博主的理解是)职责的划分是根据需求定的,同一个类(接口)的设计,在不同的需求里面,可能职责的划分并不一样。
总结
没有最合理,只有最合适。理解单一职责原则,最重要的就是理解职责的划分