以下是我整理完文章后理解的内容,若有任何错误,都欢迎留言给我,谢谢
软体开发中关注点分离的重要性
实现关注点分离可以提高程式码的可读性、可维护性和可扩展性。将複杂系统分解为较小的、相互独立的组件可以简化开发过程,减少错误和程式码重複。这也使得程式码更容易理解,因为每个组件都有自己明确的功能和责任,并且可以在未来轻鬆地进行修改和扩展。
关注点分离与模组化的差别
常见的一种与关注点分离(separation of concerns)混淆的概念是模组化(modularization)。模组化指的是将系统分解成更小、更独立的模组或元件,每个模组或元件都有其特定的功能或目的。虽然模组化有助于实现关注点分离,但这两个概念不同。
模组化是将一个系统拆分为更小、更易管理的部分,
关注点分离是确保每个元件都负责整个功能的一个明确和独立的功能。
换句话说,模组化是实现关注点分离的一种方式,但它们不是完全相同的概念。
举例来说,假设有一个电子商务网站,其中包括商品列表、购物车、付款和订单追蹤等功能。如果我们使用关注点分离的设计原则,则可以将每个功能分解成不同的模组或组件,每个模组或组件专注于其自身的关注点。例如,商品列表组件负责显示商品列表,购物车组件负责管理购物车,这样可以确保每个组件都专注于其自身的功能,减少了代码的複杂性。
模组化则是将每个功能进一步分解成可重複使用的模组。例如,商品列表组件可能由商品卡片模组、排序模组、过滤模组等模组组成。每个模组都可以独立开发(某一块程式码改了不影响别的地方)、测试和维护,并且可以在不同的组件中重複使用,减少程式码重複。
如何实现关注点分离
实现关注点分离的技术有很多种。一种方法是使用MVC(Model-View-Controller)架构,将业务逻辑、资料库访问和UI表示分离为三个不同的层。
在实现关注点分离时,常见的错误包括将太多逻辑放入单一组件中、将不相关的功能混合在一起、过度使用Global variable等。为了实现关注点分离,工程师需要精心设计和计划每个组件的功能,并确保它们具有高内聚性(Cohesion)和低耦合性(Cohesion)。
高内聚性是指将相关联的程式码放在一起,以实现单一功能。低耦合性是指程式码的不同部分之间尽可能地减少相互依赖
参考文章:
https://deviq.com/principles/separation-of-concernshttps://zh.wikipedia.org/wiki/%E8%80%A6%E5%90%88%E6%80%A7_(%E8%A8%88%E7%AE%97%E6%A9%9F%E7%A7%91%E5%AD%B8)https://zh.wikipedia.org/wiki/%E5%85%A7%E8%81%9A%E6%80%A7