zoukankan      html  css  js  c++  java
  • 《企业应用架构模式》读书笔记(4)

    第九章 领域逻辑模型

    整个书好像只有这一章是介绍领域逻辑模型,其他基本上O/R Mapping相关(笔墨最多),表现层,分布对象等等。对于领域逻辑,其设计、模式在大的“事务脚本(Transaction Script)”、“领域模型(Domain Model)”、“表模块(Table Module)”确定以后,需要应用的设计模式就是那些经典的23个模式了。

    坦白来讲,这本书到目前为止,前9章都看了有2遍,有些可以理解,有些还是不能理解。领域逻辑模型这一章,对于书中的话、对于程序和例子,都可以明白,但对于思想、该怎么使用还是似懂非懂。以前做桌面系统多一些,设计和编码多用的是Observer,Adapter之类的模式;对于非桌面系统,基本基于VB和ASP,都是2层系统,复杂一些,会把一些对象涉及的操作用对象完全封装起来,可能间于事务脚本模式和表模块模式之间,所以,实作经验的不足应该是理解偏差的主要原因吧。

    事务脚本
    事务脚本比较好理解,简单来说,就是将大多是事务,以过程的形式封装起来,然后在其他层(表现层)被调用,实现一定功能(输入、查询、更新数据库)。组织事务脚本需要通过合理的方法将其模块化,例如对于数据库连接等操作,可以独立出来,成为公用的过程。
    事务脚本可以通过一定的方法组织成类。事务脚本的优势在于简单有效。例如,对于一个留言本,使用Add、GetDetail等方法即可封装数据库操作,Web界面则直接调用其即可。

    领域模型
    领域模型是一张对象(数据、业务规则、实体等)连接成的网。
    对于简单领域模型,一般来说,一个数据库表对应一个对象;复杂领域模型则由很多细粒度对象组成,通过继承、策略和其他设计模式,模拟复杂的领域逻辑。复杂领域模型需要使用数据映射器。

    表模块
    按照我自己的理解,表模块可以简单看作通过一系列的类来模拟业务,但操作的对象是封装了的一个数据集(所谓实体对象),前一点和领域模型相同,后者则简化了与数据库的连接,不需要数据映射器。因此,表模块一般是对于数据库的一个表使用一个表模块。

  • 相关阅读:
    算法25-----位运算(2)-----案例
    算法24----重复子字符串
    算法23-------岛屿的最大面积 LeetCode 695
    算法22-----托普利茨矩阵leetcode766
    算法21----重塑矩阵 LeetCode566
    Python笔记25-----------创建二维列表【浅copy】和转置
    TensorFlow+实战Google深度学习框架学习笔记(7)-----队列与多线程
    TensorFlow+实战Google深度学习框架学习笔记(6)----神经网络经典损失函数
    Testing
    Spark简介
  • 原文地址:https://www.cnblogs.com/maweifeng/p/156409.html
Copyright © 2011-2022 走看看