php 设计模式——资源库模式(Repository)
才看到这个设计模式的时候并不觉得有多大用处,并没有发现会使代码简介多少。但是用过之后不得不说它的优势是很明显的,在M层和C层交互的时候,很好的解决了代码的耦合问题。
模式定义:Repository 是一个独立的层,介于领域层与数据映射层(数据访问层)之间。它的存在让领域层感觉不到数据访问层的存在,它提供一个类似集合的接口提供给领域层进行领域对象的访问。Repository 是仓库管理员,领域层需要什么东西只需告诉仓库管理员,由仓库管理员把东西拿给它,并不需要知道东西实际放在哪。
Repository 模式是架构模式,在设计架构时,才有参考价值。应用 Repository 模式所带来的好处,远高于实现这个模式所增加的代码。只要项目分层,都应当使用这个模式。
实现方法:
1:首先使用 Trait 创建一个基类,里面封装好对数据表常见的增删改查操作,方便后面的资源文件分别调用。
2.定义mvc中的m层,同时定义一个仓库文件用于操作这个模型,在改仓库文件上 use 上面定义的基类别,将其引入进来。
3.在仓库文件下定义一个受保护的 $model 因为基类采用的是 $this->model 来代表当前的模型,然后在仓库文件的构造方法里,把要操作的模型类实例化出来赋值给$model ,这样我们就可以在仓库文件中对数据表进行操作了,当基类方法不够用使,我们可以在相应的仓库文件中添加模型方法。
4.只要项目中用到mvc分层,都可以采取这种设计模式,我觉得很好的优化了代码,逻辑更清晰,需要什么输入的时候控制器基本不用动,只需修改相应的仓库文件即可。
网友评论