zoukankan      html  css  js  c++  java
  • Domain logic approaches

    Domain logic approaches(领域逻辑组织)可以分为三种主要的模式:事务脚本(Transaction Script)、领域模型(Domain Model)和表模块(Table Module)

    事务脚本(Transaction Script)

    使用过程来组织业务逻辑,每个过程处理来自表现层的单个请求。大多数应用都可以被看作是一系列事务。一个事务可能将某种信息看作是以特定方式组织的,然后另一事务则会改变它。

    事务脚本组织成类的方法:

    • 将数个事务脚本放在一个类中,每个类围绕一个主题将相关的事务脚本组织在一起。(最常用)
    • 每一个事务脚本对应一个类,此时需使用命令(Command)模式。使用时机
    • 事务脚本胜在简单。对于只有少量逻辑的应用程序来说,使用这一模式非常自然,无论在性能上还是理解上都不会带来太大开销。
    • 当业务逻辑越来越复杂时,该模式就会越来越难以保持良好的设计。它特有的问题是事务之间的冗余代码。

    领域模型(Domain Model)

      合并了行为和数据的领域的对象模型。在应用程序中使用领域模型需要建立一个完整的由对象组成的层,来对目标业务领域建模。 你会发现其中有的对象模拟业务活动中的数据,有的对象捕捉业务使用的规则。数据和处理一般整合在一起,从而使得数据和数据之上的操作紧密聚合。面向对象的领域模型通常看起来与数据库模型类似,但仍有许多不同之处。领域模型混合数据和处理过程,拥有多值和复杂的的关联网,并且使用继承。

      领域模型衍生出两种风格。简单领域模型看起来与数据库设计很类似,这种设计中几乎每一个数据库表都与一个领域对象对应。而复杂领域模型则与数据库 设计不同,它使用继承、策略和其他设计模式,是一张由互联的细粒度对象组成的复杂网络,复杂的领域模型更适合于复杂的逻辑,但它于数据库的映射比较 困难。

    由于业务行为是经常变化的。因此易于修改、建造和测试对领域层来说十分重要。因而,领域模型与系统中的其他层之间的耦合度应达到最小。许多的分层 模式,它们的主导思想就是领域模型与系统中其他部分间保持尽可能小的

      何时使用这一模型完全取决于系统中的行为复杂程度。如果你的业务规则复杂多变,涉及检验、计算、衍生,你就应该利用对象模型进行处理, 反之,如果你只有一些简单的判空值和少量的求和计算,事务脚本是一个更佳的选择。

    影响选择的因素之一是开发小组灵活运用领域对象的程度。学会如何使用领域模型是极为重要的,故而出现了许多”理论体系迁移?方面的文章,它们都是关于 对象使用的。要熟悉领域模型需要实践和训练,但是一旦掌握了它,我发现处理解决最简单的问题外,很少会有人再使用事务脚本。

    使用领域模型时,你可能会考虑设立一个服务层,以便给领域模型一个更清晰的API。

    表模块(Table Module)

      表模块以一个类对应数据库中的一个表来组织领域逻辑,而且使用单一的类实例来包含将对数据进行的程序种操作程序。

      最常使用这一模式的场合是在Microsoft的COM设计方案中。在COM(及.net)中,记录集是应用程序的主要数据仓库。ADO 库提供了良好的机制,可供你以记录集的方式来 存取关系数据库中的数据。

  • 相关阅读:
    笨办法29IF语句
    笨办法28布尔表达式
    笨办法27记住逻辑
    笨办法26恭喜你,可以进行一次考试了
    笨办法25更多更多的练习
    笨办法23复制文件
    成功转移(✿◡‿◡)
    笨办法22到目前为止你学到了什么?
    vue.js
    webpack-优化
  • 原文地址:https://www.cnblogs.com/oner-xd/p/10776041.html
Copyright © 2011-2022 走看看