免费学习网考试资料计算机类内容页

PHP和DAO设计模式

2021-08-30 17:50:59 计算机类

  PHP和DAO设计模式

  DAOData Access Object,数据存取对象设计模式对于从PHP和MySQL教程一步步走过来的人来说是一个新的概念。我们的编码中的一大部分就是用来解决数据库获取和操作。随着大数据的来临,和数据分析方法的进步,数据操作越来越重要。

  DAO设计模式旨在解决两个问题:重复、和数据源抽象。

  重复:在程序中我们一般会写一句SQL语句来在数据库中创造一个条目。之后又写一个SQL语句来更新某一栏。不断地重复写SQL既无聊又不优雅。

  事实上,我们如果用DAO设计模式来实现的.话,一个数据存取对象会用来封装SQL的创建过程,减少复杂性和重复性。它应该不用区分具体的表结构和数据库引擎。

  数据源抽象:另一个优势就是数据层的抽象。现在你的逻辑代码不用再担心数据库引擎和表的关系。调用他们的公共方法可以返回任意类型的数据,无论底层需要怎样的SQL。

  但是程序员不要过度设计DAO。简化DAO的设计就好,不要增加不需要的功能。

  在github上有一些使用了DAO模式的Repo,有的简单,有的过度设计了。简单地说,实现上我们需要一个抽象类baseDAO和一些继承了它的实体类比如userDAO。

  在baseDAO中需要定义两个公共函数:fetch和update,分别获得一行数据和更新一个数组。还定义一些私有的函数比如链接数据库,还有私有的数据比如当前表的主键和表明。

  在userDAO继承baseDAO的时候,需要声明私有数据比如主键和表明,然后在baseDAO的fetch和update的基础上自定义一些新的公共函数。这样做的好处是把生成SQL的工作全部封装在两个抽象类的公共函数之中,userDAO以及其他的更多DAO只是调用这一函数而已。

  需要更多的数据存取操作的时候,我们就基于baseDAO新建一个userDAO或者itemDAO,然后实例化这一对象,这就是DAO设计模式。

猜你可能喜欢