代码之家  ›  专栏  ›  技术社区  ›  Jon

N层体系结构设计关注点分离

  •  3
  • Jon  · 技术社区  · 17 年前

    我意识到已经有很多关于n层设计的帖子了,这可能是我想得太多,绕圈子了,但我现在都很困惑,我想从社区那里得到一些澄清。

    • 用户界面
    • 业务对象
    • 逻辑/商业

    用户界面 应该只调用Logic层来获取其内容

    业务对象 不应该调用或引用其他任何东西,而只是存储数据的一种方式

    / 商业

    DAL 只会在数据库上执行CRUD操作。它将引用BO,因为它将为Gets等返回BO。

    我的问题是,Logic类是否应该只调用其等效的DAL类,而只调用逻辑类?换言之, CompanyLogic CompanyDAL ClientLogic.GetClientByID(int) 而不是 ClientDAL.GetClientByID(int) .

    1. 如果获取客户端对象时有一些逻辑验证(可能不是最好的例子,但希望它能传达出重点),那么逻辑呢。

    编辑:

    1 回复  |  直到 7 年前
        1
  •  4
  •   Community Mohan Dere    9 年前

    好吧,以下是我对你的设计的评论:

    • 任何事物 .

    • 如果你真的想将业务层与DAL解耦,那么逻辑层应该只接受DAL的接口,而不是具体的DAL类。

    • 关于验证应该驻留在哪里,有两种思想流派。有些完全可以在UI层进行验证;其他人宁愿抛出异常或从业务层传递消息。无论你走哪条路,只要保持一致,不要在多个地方重复验证,你就没事了。

    • 请尝试对其进行编码

    更新

    YAGNI