我正在开发使用Web服务的ASP.net应用程序.直接来自我的应用程序没有数据库连接 - 所有活动都是使用Web服务处理的.
在UI层,我可以使用几行Linq代码进行数据自定义和验证.如果我的应用程序没有业务层,有什么缺点?
Mat*_*all 10
如果您的UI代码处理与UI无关的事情,例如业务逻辑,则代码缺乏关注点分离.假设您要使用完全不同的UI - 例如,您希望从Web服务切换到创建实际的Web站点/应用程序.您必须在新UI层中完全重现所有业务逻辑,因为业务逻辑与当前UI相关联.
关注点分离(SoC)是将计算机程序分离为尽可能少地在功能上重叠的不同特征的过程.关注点是程序中的任何兴趣或焦点.通常,顾虑与特征或行为是同义词.传统上通过编程和封装的模块化(或操作的"透明度")在信息隐藏的帮助下实现SoC的进步.信息系统中的分层设计通常也基于关注点的分离(例如,表示层,业务逻辑层,数据访问层,数据库层).
SoC和SRP使得它更容易和更简单:
这是一个类比(是的,它简化了):汽车部分使用方向盘和油门踏板控制.方向盘控制汽车的方向,油门踏板控制汽车的速度.
如果一个设备控制汽车的方向和速度,驾驶员将更难安全和精确地操作汽车.例如,如果驾驶员必须将方向盘推入或将其拉出以使汽车行驶更快或更慢,他们可能会同时改变汽车的方向.同样,驾驶员在试图转弯时可能会意外地改变汽车的速度.
保持两个问题(速度和方向)分开使驾驶更容易和更安全.
问自己一个问题:这个应用程序中是否有业务逻辑?
或者说:你是
在第一种情况下,我会说业务层实际上可能会给简单的应用程序增加不必要的复杂性.
在第二种情况下,您当然应该创建一些业务对象,并尝试将它们从数据库和UI中解开(高内聚,低耦合,封装信息隐藏).使您的业务逻辑可用于独立单元测试,并问自己是否可以快速从Oracle迁移到SQL Server数据库,或者从winforms UI迁移到使用相同业务逻辑的Silverlight应用程序.
| 归档时间: |
|
| 查看次数: |
4566 次 |
| 最近记录: |