1.基础知识
-
是最简单的面向对象设计原则,它用于控制类的粒度大小。
-
一个类只负责一个功能领域中的相应职责。
-
单一职责原则的核心思想是:一个类不能太“累”!在软件系统中,一个类(大到模块,小到方法)承担的职责越多,它被复用的可能性就越小,而且一个类承担的职责过多,就相当于将这些职责耦合在一起,当其中一个职责变化时,可能会影响其他职责的运作(高耦合)。
-
单一职责原则是实现高内聚、低耦合的指导方针,它是最简单但又最难运用的原则,需要设计人员发现类的不同职责并将其分离,这需要设计人员具有较强的分析设计能力和相关实践经验。
-
简单理解就是一个类(或函数)只去做跟自己有关的事情,不相干的功能去对应类或者控制器中处理,例:有一个用户管理的控制器,它就应该只处理与用户相关的操作,如用户注册、登录、用户信息获取和修改等,而不应该涉及其他不相关的功能,如订单处理或商品管理。
2.如何理解高内聚?
-
“高内聚” 指的是一个模块或一个类内部的各个元素彼此紧密相关,共同完成一个明确的、相对独立的功能。
-
例如一个负责用户认证的类,它的所有方法和属性都应该紧紧围绕用户认证这个核心功能。它内部的代码逻辑紧密,相互协作,只为了高效、准确地实现认证这一目标。
-
好处是模块的功能明确、单一,易于理解、维护和测试。当需要修改这个模块的功能时,因为其内部的紧密相关性,可以更有针对性地进行修改,减少对其他模块的影响。
3.如何理解低耦合?
-
指的是不同模块或类之间的依赖关系尽可能少,相互之间的联系尽可能简单和松散。
-
例如,模块 A 完成功能 A,模块 B 完成功能 B,它们之间的交互通过简单、清晰的接口进行。模块 A 的变化不应该直接导致模块 B 也需要大规模的修改。
-
低耦合的优点在于当一个模块需要修改或扩展时,对其他模块的影响较小,系统更具灵活性和可扩展性。各个模块可以独立开发、测试和维护,提高了开发效率。
4.Lumen框架使用到单一职责原则的地方有哪些?
-
路由系统:Lumen 的路由文件通常只负责定义路由规则,将不同的 URL 路径与相应的控制器方法进行映射。
-
控制器:控制器主要负责接收用户请求,调用相应的服务或模型方法来处理业务逻辑,并将结果返回给客户端。
-
模型层:在 Lumen 中,Eloquent 模型通常只负责与数据库表进行映射,定义表结构、字段、关联关系等。例如,User模型主要用于表示用户表,包含$fillable属性来定义可填充的字段,以及通过hasMany、belongsTo等方法定义与其他模型的关联关系,不包含复杂的业务逻辑。
-
服务层:服务层的类通常负责处理具体的业务逻辑,将业务规则和操作封装在服务类的方法中。
以上内容为根据书本内容配合搜索引擎整理得来,目的是为了学习,要是有侵权的情况发生,请联系我,我会立即予以删除,谢谢!
一起成长,人生是马拉松,可以跑得慢,但一定要在路上。