在客户端 - 服务器的三层软件架构中封装层

Kay*_*o17 1 encapsulation distributed-computing

客户端 - 服务器范例的三层软件体系结构有三个不同的层:

  1. 表示层 - 用户可以直接访问的层,例如UI或网页.也称为客户端.

  2. 应用层 - 该层封装业务逻辑(如业务规则和数据验证),域概念,数据访问逻辑等.也称为中间层.

  3. 数据层 - 用于存储应用程序数据的外部数据源,例如数据库服务器.

为什么将单独层的逻辑封装在单独的软件模块中是有利的?

Ale*_*ore 5

有几个原因你应该将单独层的逻辑封装在单独的软件模块中.

它强迫你练习关注点/ SRP.

这匹马已经被打死了,所以我将参考其他 StackOverflow问题.如果你真的在不同的文件/模块中保持不同的关注,而没有太多的耦合,你将是一个更快乐的开发人员.直到你看到30,000行"神级"完成所有事情并且不可能添加或删除功能,修复错误或重构之前,你还没有看到地狱.

它可以帮助您将代码分解为可管理的块.

编码器已经将代码分解成不同的模块一段时间了,因为它有助于我们理解更大的图景.一旦系统超出小尺寸,或者您需要与其他开发人员合作,您通常需要模块为您提供的结构和形容词.

3.它可以帮助您将来将代码分发到不同的机器/架构上.

将您的软件放入不同的模块可以使将来更容易将它们分发到不同的机器(即分布式计算)上.如果模块没有共享状态且没有过度耦合,则可以将模块移动到不同的机器上.它不会自动执行此操作,您仍然需要处理接口(rpc/services/etc)和分布式计算的所有乐趣.

注意:如果您过度使用模块,您可以轻松地回避所有这些好处.通常,您希望最小模块耦合遵循数据流的方向(即表示层不应与数据库通信).