在业务逻辑层中还有一种模式:表模块,在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;
}
}
看完可能会说:这不是我天天在敲的代码么。确实,在实际的开发中,表模块在中小的项目中运用得比较多,编程的门槛也比较低。你可能不知道这种模式,但其实你一直在使用它。。。
四、小结
事务脚本比较容易理解,但系统越复杂它就越难以维护;领域模型非常规范,但要纯粹的实现它,需要面临的主要问题是对象和关系数据库之间的映射问题;表模块介于两者之间,很多开发平台对表模块和基于记录集的编程都有非常好的支持,因此,它往往是一个不错的折中选择。值得注意的是,表模块并没有给你提供完全的面向对象能力来组织复杂的领域逻辑,你不能在实例之间直接建立关联,而且多态机制也无法工作良好。
相关推荐
本集视频教程“082集-搭建项目框架-业务逻辑层”着重讲解了如何构建一个良好的业务逻辑层,确保应用的稳定性和可维护性。业务逻辑层是应用程序的核心部分,处理数据处理、业务规则以及与用户界面和数据访问层的交互...
表现层使用JSP技术实现,业务逻辑层使用Servlet技术实现,数据访问层使用JDBC技术实现。 最后完成了模块的划分和数据库的设计与实现,并对系统进行了测试。系统划分为日记管理模块、用户管理模块和系统管理模块。日记...
数据的合法性验证和完整性检查是业务逻辑层的重要职责之一,但这是否包括所有类型的验证仍存在争议。有些开发者主张将所有验证逻辑放在业务逻辑层,而另一些则认为简单的数据类型验证可以放在数据访问层。 #### ...
该系统的功能模块分为接口层、业务逻辑层和数据访问层。接口层可以与用户通信并提供外部接口。系统通过界面层收集用户数据,用户进行注册、登录、浏览和评分。业务逻辑层可进行用户信息管理和电影信息管理;业务逻辑...
业务逻辑层使用Struts Action类实现各功能模块的业务逻辑,主要包括商品管理Action、购物车Action、订单Action和支付Action等。这些Action类通过Hibernate框架操作数据持久层中的数据表,完成商品信息查询、添加、修改...
【ASP.NET 2.0 数据教程之二:创建一个业务逻辑层】 在ASP.NET 2.0中,数据访问和业务逻辑的分离是构建高效、可维护的应用程序的关键。本教程将详细介绍如何创建一个业务逻辑层(Business Logic Layer,BLL),以便...
在软件开发领域,三层结构(Three-Tier Architecture)是一种常见的应用程序设计模式,它将应用程序划分为三个相对独立的层次:表现层(Presentation Layer)、业务逻辑层(Business Logic Layer,BLL)和数据访问层...
总结起来,"java三层范例"是一个基于Java的软件开发实例,它展示了如何通过用户界面层、业务逻辑层和数据访问层来组织和管理代码,以实现一个清晰、模块化的应用程序。`Test(三层)`文件很可能是这个三层架构中的各个...
在ASP.NET MVC框架中,业务逻辑通常独立于视图(View)和控制器(Controller),存在于模型(Model)部分,或者单独的业务逻辑层(Business Logic Layer,BLL)中。 业务逻辑的组成结构包括以下几个方面: 1. 领域...
该系统采用三层架构,分别是展现层、业务逻辑层和数据存取层。 展现层使用JSP技术实现,主要负责用户界面展示和用户交互。设计了用户注册、登录、发帖、回帖、搜索等多个JSP页面。业务逻辑层使用Servlet技术实现,主要...
3. **业务逻辑层** (Business Logic Layer) 4. **数据访问层** (Data Access Layer) 5. **数据和存储管理层** (Data and Storage Management Layer) 这五个层次各自承担不同的职责,通过相互协作实现复杂的应用程序...
小程序消息模块业务层是小程序的核心组件之一,它负责处理小程序中的消息相关业务逻辑。在本节中,我们将详细介绍小程序消息模块业务层的设计,包括业务接口的定义、业务实现类的设计等。 一、定义Message业务接口 ...
模型层负责处理业务逻辑和数据管理。在用户登录场景中,这可能包括验证用户提供的用户名和密码是否匹配数据库中的记录。模型层通常会与数据库交互,执行SQL查询,如检查用户的凭证是否有效。此外,它也可能包含一些...
.NET三层架构是一种常见的软件开发模式,它将应用程序逻辑分为三个独立的层次:表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access Layer)。这样的分层设计有利于提高...
当然还有其他的分层,如:表示层、服务层(服务外观层)、业务逻辑层、数据映射层、数据层等等。 二、业务逻辑实现方式 在企业级系统中最核心的层是业务层,因为企业级系统主要是与业务打交道,而业务逻辑是每个...
在本示例中,我们将探讨如何使用Struts 1.x版本将业务逻辑分离到业务层,这是一个重要的设计原则,可以提高代码的可读性、可维护性和可测试性。MyEclipse 6.5是一个集成开发环境,它为Struts项目提供了很好的支持。 ...
它将应用程序分为三个主要部分:表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access Layer)。这种架构有助于实现代码的解耦,提高可维护性和可扩展性。 在C# 2.0中,三...
2. **业务逻辑重用**:Openbiz通过其独特的服务层和服务对象(Service Object)机制,实现了业务逻辑的高度抽象和重用。开发者可以创建可复用的服务组件,降低代码冗余,提高开发效率。 3. **数据访问对象(DAO)**...
4. **逻辑层(BLL - Business Logic Layer)**:逻辑层是业务逻辑的实现,它调用数据层的方法,执行复杂的业务操作,并返回结果给控制器。在这个模板中,可能存在一个BLL层生成的小错误,需要开发者手动修正。 5. *...