一、domain logic approaches程序员
Transaction Script(事务脚本模式),是一种最简单和最容易接受的处理业务的方法。这种模式是采用面向过程的方式来组织业务逻辑。一般状况下,系统的一个流程会被实现为一个方法,而后全部的方法被组织在一块儿,放在一个类中。数据库
设计思想:取数据-》逻辑-》数据展现。 存数据-》逻辑-》保存数据。app
一个事务的处理,不会影响到其余的事务dom
业务逻辑复杂时,系统每增长一个业务流程,代码就会增长一个或几个方法,最后业务类中存在大量类似的代码(重用性不强,难以维护)编码
二、domain model.net
若是说事务脚本是 面向过程 的,那么领域模型就是 面向对象 的。面向对象的一个很重要的点就是:“把事情交给最适合的类去作”,即:“你得在一个个领域类之间跳转,才能找出他们如何交互”,Martin Flower 说这是面向对象中最难的部分,这具备误导的成份。确切地说,咱们做为程序员若是已经掌握了 OOD 和 OOP 中技术手段,那么如何寻找类之间的关系,可能就成了最难的部分。但在实际的状况中,即使咱们不是程序员,也总能描述一件事情(即寻求关系),因此,找 对象之间的关系 还真的并非程序员最关系的部分,从技术层面来说,寻找类之间的关系由于与具体的编码技巧无关,因此它如今对于程序员的咱们来讲,应该是最简单的部分,技术手段才是这里面的最难部分。设计
三、table module对象
表模块(Table Module),它是处理某一数据库(其实只能是关系型数据库)中表与视图全部行的业务逻辑的一个实例。由于表模块其实就一个数据集合(如:ado的RecordSet,ado.net的DataSet中的DataTable或类型化DataSet等之类),它能够当作是一个数据容器,由于他用一个类(如Product)表示数据库中对应表全部数据及行为,咱们知道面向对象模型与关系模型存在差别,一般一个类与一个实体在概念上相对应,也就是一个类对应一个表,一个类的实例,即对象对应表中某一行记录。类与表都是抽象的,集合的概念,像关系数据库中表就一个二维(行、列)的集合,而表模块用一个类直接表示表中全部数据及行为,因此这个类能够不须要实例化,它就至关于一个表(如.net 的DataTable),这样全部业务操做都直接用表模块方式进行,从这一律念上来讲,它也能够当作是业务逻辑的一种实现方式,其实你们确定能够得出,这种方式在本质上仍是采用事务脚本方式来实现业务逻辑,只是事务脚本方式,常常要求处理一个业务逻辑(如:查找指定ID的Product)就须要用SQL语句从数据库中获取数据,而这种方式先把数据库的全部行加载到表模块(如:DataTable)中,以后处理全部业务都直接与表模块有关(如:查找指定ID的行,CRUD之类的操做),这正是表模块与事务脚本的细微区别以后。事务