当前位置: 首页 > 后端技术 > PHP

Day10-《企业应用架构模式》-数据源架构模式

时间:2023-03-29 14:28:21 PHP

1.表数据入口  作为数据库表访问入口的对象,一个实例处理表中的所有行。1)运行机制:    表数据入口包含所有用于访问单个表或视图的SQL,如选择、插入、更新、删除等,其他代码调用其方法进行所有与数据库的交互。    表数据录入可以和表模块一起使用,它生成一个记录集数据结构供表模块处理2)什么时候使用:    数据录入特别适合事务脚本,两者之间的选择行数据输入和表数据输入归结为如何处理多个数据行,当结果集在事务脚本中呈现时,使用表数据输入。3)例子:    下面两图是正常情况下,充分利用.net特性的表格数据录入的实现:        2。行数据条目充当数据源对象中的单个记录条目,每行一个实例。1)运行机制:    特点:行数据条目是一个类似于单条记录的对象,比如数据库中的一行(这个对象中数据库中的每一列都成为一个域)    问题:将数据存储在哪里产生模式的查找操作?由于选择静态查找方式不支持为不同数据源提供不同查找方式的多态性,所以需要设置单独的查找方式对象(这样关系型数据库中的每张表都有查找方式类和入口获取结果)    rowdataportal和activerecord的区别:是否有域逻辑,有则为activerecord2)什么时候使用:    事务脚本(用于表数据录入和行数据录入的选择,参考表数据录入)    行数据录入可以和数据映射器一起使用:行数据录入是从元数据自动生成的,数据映射器是手动实现的3)示例:    3.ActiveRecordanobjectthatcontainsArowinadatabasetableorview封装了数据库访问并为这些数据添加领域逻辑1)运行机制:    ActiveRecord的本质是一个领域模型,这个领域模型中的类和记录在基础数据库结构非常一致。    ActiveRecord通常有以下几种方法:      从SQL结果集中的一行构造一个ActiveRecord实例;    构造一个新实例,以便将来插入到表中;      封装普通的SQL查询并返回活动记录(也可以分离成单独的类);      更新数据库,将活动记录中的数据插入数据库;      获取或设置字段;      实现了部分业务逻辑。2)何时使用:    适用于创建、读取、更新、删除等不太复杂的领域逻辑;    优点:简单、易创、易懂;    缺点:对象的设计和数据库的设计要求紧耦合,项目中难以进一步重构;当业务逻辑复杂,对象之间存在引用、集合、继承时,很难映射到活动记录3)例子:        其中,圈出的是领域逻辑实现。4.数据映射器一个映射器层,在对象和数据库(以及映射器本身)之间移动数据,同时保持它们彼此独立,如下:    1)运行机制:    主要功能:分离字段和数据源    延迟加载    基于元数据的映射2)何时使用:    业务逻辑复杂,数据库方案和对象模型需要相互独立演化3)示例:        其中DataMapper实现了IPersonFinder接口,用于查找方法的实现。