《企业应用架构模式》—组织领域逻辑
2009-10-18 11:35
211 查看
领域逻辑的组织可以分为三种主要的模式:事务脚本、领域模型、表模块。
1.事务脚本:事件驱动的处理过程。根据用户界面操作、外部调用动作,从表示层获取输入,进行验证和计算,将数据存储到数据库或数据文件中的处理过程。基本方式是每个过程(一个或多个相关函数,可理解为脚本)对应于用户可能做的一个动作。其主要优缺点是:
a.简单容易理解,就是动作驱动、过程化处理;
b.能够与一个使用“行数据入口”或“表数据入口”的简单数据源层很好地协作;
c.事务边界明显:始于脚本的打开,终于脚本的关闭;
d.容易出现代码副本,使得程序结构不清晰;
e.没有对数据进行必要的抽象。
2.领域模型:将业务领域中的实体建模为对象,由这些对象来执行相关业务逻辑。通常还可以独立出一个服务层,向表示层提供更易理解的API,同时也可以进行事务和安全控制。服务层应当在必要时才使用,且应尽量最小化。
3.表模块:设计为与记录集一起工作。与领域模型的区别在于:领域模型中对象通常对应于一条记录,而表模块中的对象通常对应整个表。无法在表模块中应用继承、策略等面向对象设计模式。
表数据入口:类似于DAO和DBHelper,通常是对SQL语句的集中封装;
行数据入口:与表数据入口的区别在于,封装SQL的类本身含有对应行的数据库值域。
1.事务脚本:事件驱动的处理过程。根据用户界面操作、外部调用动作,从表示层获取输入,进行验证和计算,将数据存储到数据库或数据文件中的处理过程。基本方式是每个过程(一个或多个相关函数,可理解为脚本)对应于用户可能做的一个动作。其主要优缺点是:
a.简单容易理解,就是动作驱动、过程化处理;
b.能够与一个使用“行数据入口”或“表数据入口”的简单数据源层很好地协作;
c.事务边界明显:始于脚本的打开,终于脚本的关闭;
d.容易出现代码副本,使得程序结构不清晰;
e.没有对数据进行必要的抽象。
2.领域模型:将业务领域中的实体建模为对象,由这些对象来执行相关业务逻辑。通常还可以独立出一个服务层,向表示层提供更易理解的API,同时也可以进行事务和安全控制。服务层应当在必要时才使用,且应尽量最小化。
3.表模块:设计为与记录集一起工作。与领域模型的区别在于:领域模型中对象通常对应于一条记录,而表模块中的对象通常对应整个表。无法在表模块中应用继承、策略等面向对象设计模式。
表数据入口:类似于DAO和DBHelper,通常是对SQL语句的集中封装;
行数据入口:与表数据入口的区别在于,封装SQL的类本身含有对应行的数据库值域。
相关文章推荐
- 读《企业应用架构模式》4---关于组织领域逻辑
- 学习《企业应用架构模式》(Patterns of Enterprise Application Architecture)C02 组织领域逻辑
- 《企业应用架构模式》(POEAA)读书笔记 (3)-- 领域逻辑模式
- 企业应用架构模式笔记(2)组织领域逻辑
- 领域驱动系列:三种领域逻辑组织模式的本质
- 企业应用架构模式--组织领域逻辑
- 企业架构应用模式笔记--第二章(组织领域逻辑)
- 大城市 讲公平 讲逻辑 。。。。探索未知领域不拿着逻辑线怎么往前走。。。。。 结论:要跟着逻辑走,越高层越这样。。(至于,有些物理概念,反直观。。。人本身硬件有局限。)
- 系统架构逻辑参考图【强调了领域模型+面向服务编程理念】
- 领域驱动设计案例:Tiny Library:业务逻辑与系统结构
- 基于事件驱动的领域模型实现框架 - 分析框架如何解决各种典型业务逻辑场景
- Gradle 1.12用户指南翻译——第五十九章. 组织构建逻辑
- RxJava 1.x 业务逻辑的组织
- 浅谈领域逻辑和业务逻辑
- 领域逻辑的实现分类
- myisam与innodb索引组织逻辑结构
- 让我们的领域逻辑彻底裸奔吧
- 企业应用架构模式之领域逻辑模式
- C#基础知识C#中的类是利用命名空间组织起来的。命名空间提供了一种从逻辑上组织类的方式,防止命名冲突。 命名空间声明 用namespace 关键字用于声明一个命名空间。此命名空间范围允
- 控制领域的学术组织和学术会议