在业务逻辑层中还有一种模式:表模块,在PHP的实际开发,很多时候其实用到的都是表模块模型。
一、概念
Table Module:处理某一数据库或视图中所有行的业务逻辑的一个实例。太抽象了!其实表模块和领域模型非常相似。表模块是以一个类对应数据库中的一个表来组织领域逻辑,而且使用单一的类实例来包含将对数据进行的各种操作程序,它与领域逻辑的主要区别在于,如果你有许多订单,领域模型对每一个订单都有一个对象,而表模块则只用一个对象来处理所有订单。
二、为什么要使用表模块?
表模块的优点是允许将数据与行为封装在一起,同时又可以充分利用关系数据库的优点,表面上看起来表模块与常规的对象很相似,但关键区别在于它本身没有标识符来标出它所代表的实体对象。因此其操作时都需要传入一个某种类型的标识符(例如主键)。
表模块在很大程序上依赖于表方式组织的数据,因此当你使用记录集存取表数据时应当使用这一模式。
如果领域模型中的对象与数据库中的表比较一致,可能采用基于活动记录的领域模型会更好一此。当应用程序的其他部分基于一个公用的面向表的数据结构时,表模块将比领域模型和活动记录的组合工作得更好。
三、简单实现表模块
<?php
//大多应用中会有一个基类,此处方便起见省略
class Order {
private $conn;
public function __construct() {
$this->conn = '初始化连接,可注册表从中获取';
}
public function getAll() {
return array();
}
public function getByConditions($conditions = array()){
return array();
}
public function getOrderInfo($orderID){
return array();
}
public function update( $orderID ) {
return 0;
}
public function delete( $orderID ) {
return 0;
}
public function insert( $orderID ) {
return 0;
}
}
看完可能会说:这不是我天天在敲的代码么。确实,在实际的开发中,表模块在中小的项目中运用得比较多,编程的门槛也比较低。你可能不知道这种模式,但其实你一直在使用它。。。
四、小结
事务脚本比较容易理解,但系统越复杂它就越难以维护;领域模型非常规范,但要纯粹的实现它,需要面临的主要问题是对象和关系数据库之间的映射问题;表模块介于两者之间,很多开发平台对表模块和基于记录集的编程都有非常好的支持,因此,它往往是一个不错的折中选择。值得注意的是,表模块并没有给你提供完全的面向对象能力来组织复杂的领域逻辑,你不能在实例之间直接建立关联,而且多态机制也无法工作良好。
相关推荐
表现层使用JSP技术实现,业务逻辑层使用Servlet技术实现,数据访问层使用JDBC技术实现。 最后完成了模块的划分和数据库的设计与实现,并对系统进行了测试。系统划分为日记管理模块、用户管理模块和系统管理模块。日记...
该系统的功能模块分为接口层、业务逻辑层和数据访问层。接口层可以与用户通信并提供外部接口。系统通过界面层收集用户数据,用户进行注册、登录、浏览和评分。业务逻辑层可进行用户信息管理和电影信息管理;业务逻辑...
业务逻辑层使用Struts Action类实现各功能模块的业务逻辑,主要包括商品管理Action、购物车Action、订单Action和支付Action等。这些Action类通过Hibernate框架操作数据持久层中的数据表,完成商品信息查询、添加、修改...
该系统采用三层架构,分别是展现层、业务逻辑层和数据存取层。 展现层使用JSP技术实现,主要负责用户界面展示和用户交互。设计了用户注册、登录、发帖、回帖、搜索等多个JSP页面。业务逻辑层使用Servlet技术实现,主要...
在数据层使用了MySQL数据库,在业务逻辑层使用了Spring框架,在展现层使用了Struts2框架。项目实体类使用了Hibernate技术进行持久化,实现了与数据库的映射。 在项目管理模块中,设计了项目信息管理、项目成员管理、...
3.1.2 业务逻辑层 7 3.1.3 实体层 9 3.1.4 数据访问层 12 3.2 详细信息管理 13 3.2.1 表示层 13 3.2.2 业务逻辑层 14 3.2.3 实体层 16 3.2.4 数据访问层 17 3.3 教育信息管理 18 3.3.1 表示层 18 3.3.2 业务逻辑层 ...
用MVC写的,三层大家都清楚吧,就是页面层,逻辑层,数据访问层。。。。。。。
业务逻辑层模块——一组类的集合,完成业务逻辑层的具体功能,实现业务逻辑层接口族。 虚拟工厂模块——生成数据访问层实例 辅助类模块——完成全局辅助性功能。 视图模块——完成整个系统页面的显示,以及系统与...
此外,抽象出来的IDAL模块,除了解除了向下的依赖之外,对于其上的业务逻辑层,同样仅存在弱依赖关系,因为业务逻辑层只需实例化IDAL模块的接口类后,业务逻辑(BLL)层作为接口的访问控制部分,它处于数
界面层调用业务逻辑层实现用户的功能,只要业务逻辑层有这个功能,就可以调用,界面层只需要提供输入输出和提示等。这就是基于三层架构的应用程序体系结构,是目前最通用的架构模式。 关键字:三层架构、工厂模式
这是用JSP实现的用户登模块,对于初学JSP的人应该有比较大的帮助
以下是基于SSM(Spring + SpringMVC + MyBatis)的学生学籍管理系统的...业务逻辑层是接口层和数据访问层之间的桥梁,负责处理业务逻辑。该层使用Spring框架实现,包括学生信息业务逻辑和成绩信息业务逻辑两个模块。
用户只需要使用Python脚本编写业务层逻辑,即可快速搭建一个简易的后端服务器。 项目启动 将编译后生成的可执行文件server,服务器配置文件config.ini放在同一个文件夹下。在同级目录下创建script文件夹,将pmysql、...
业务逻辑层:新闻业务逻辑层可以负责验证管理员的操作权限,确保只有合法的用户才能进行增删改操作。 用户模块: 增加用户:管理员可以添加新用户,包括用户名、密码和角色等信息。 删除用户:管理员可以根据用户...
上面这些添加信息到数据库表中的操作基本上是类似的,在三层体系结构中,表示层提供添加信息的录入界面,业务逻辑层实现具体的业务逻辑,数据访问层负责把新数据添加到数据库表中。本章以添加员工信息为例来介绍向...
业务逻辑层(Service层):该层由若干Service接口和实现类组成。逻辑层主要用于实现系统的业务逻辑。 Web表现层:该层主要包括Spring MVC中的Controller类和JSP页面。 总结: 云借阅图书管理系统主要实现了两大功能...
1、添加表示层对业务逻辑层的依赖、业务逻辑层对数据访问层的依赖、业务逻辑层对业务实体的依赖和数据访问层对业务实体的依赖。 2、编写实体类 3、做好底层的数据操作 C、编辑Web页面 1、使用模板页面 2、页面...
方法上,通过调用业务逻辑层的方法执行具体业务逻辑; util 包:存放工具类。 4.实现功能 (1)完成成绩管理系统成绩管理模块首页; (2)完成成绩管理系统成绩管理模块编辑成绩功能; (3)完成成绩管理系统成绩...
外观层(设计模式之外观模式)Facade:把数据访问接口,业务领域对象的业务逻辑,Service接口简单的封装一下成为Facade层接口供展示层UI或SOA层调用,这个层需要注意的是它只是简单的封装,免得UI层调太多层的接口,这...
6.4 业务逻辑层设计 132 6.5 表示层设计 136 6.5.1 用户管理 136 6.5.2 角色权限管理 142 6.5.3 仓储管理 147 6.5.4 报表管理 149 第7章 在线帮助系统 156 7.1 系统总体设计 156 7.1.1 系统功能...