不同类型的 BLL 类(仅适用于 DA VS BL)
Different Types of BLL Classes (Adapter to DA VS BL Only)
我正在开发我的第一个多层 MVC 应用程序。一种纸牌游戏。
我有3层如下
|演示文稿 (MVC)| --> |BLL| --> |DAL(工作模式repo/unit)|
DAL 大部分是通用的,我的 BLL 映射几乎是 1-1 table。
现在我有 'special' 类,只处理纸牌游戏逻辑(例如检查手牌是否有效,检查是否有人赢了)。这些类不需要和数据库通信。额外类:卡片,玩家。
我把这些只包含逻辑且不需要与 DAL 通信的 类 放在哪里最好?一个额外的项目?也许只是调整了我的命名约定?
非常感谢任何意见!
这些特殊的类听起来好像它们将与主要对象(卡片、播放器等)一起构成您的应用程序的核心,所以它们属于业务逻辑层。
如果您的某些 类 与其他层有连接而其他层没有连接,这无关紧要(也不应该)。但是,您可能想看看 Uncle Bob 的 clean architecture or Alistair Cockburn's hexagonal architecture(又名 "Ports and adapters")以获取如何构建域模型、用例和各个层的灵感(应该)。请注意,这些方法为插件带来了额外的灵活性,比如不同的持久机制。这样做的代价是(有些人可能会说是轻微的)复杂性增加。
我正在开发我的第一个多层 MVC 应用程序。一种纸牌游戏。
我有3层如下
|演示文稿 (MVC)| --> |BLL| --> |DAL(工作模式repo/unit)|
DAL 大部分是通用的,我的 BLL 映射几乎是 1-1 table。
现在我有 'special' 类,只处理纸牌游戏逻辑(例如检查手牌是否有效,检查是否有人赢了)。这些类不需要和数据库通信。额外类:卡片,玩家。
我把这些只包含逻辑且不需要与 DAL 通信的 类 放在哪里最好?一个额外的项目?也许只是调整了我的命名约定?
非常感谢任何意见!
这些特殊的类听起来好像它们将与主要对象(卡片、播放器等)一起构成您的应用程序的核心,所以它们属于业务逻辑层。
如果您的某些 类 与其他层有连接而其他层没有连接,这无关紧要(也不应该)。但是,您可能想看看 Uncle Bob 的 clean architecture or Alistair Cockburn's hexagonal architecture(又名 "Ports and adapters")以获取如何构建域模型、用例和各个层的灵感(应该)。请注意,这些方法为插件带来了额外的灵活性,比如不同的持久机制。这样做的代价是(有些人可能会说是轻微的)复杂性增加。