我这种建立简单logic分层,可以吗?

浏览:763 发布日期:2018/08/27 分类:求助交流 关键字: logic
之前程序小的时候感觉不到,就一直往控制器里面堆代码。后来写着写着代码越来越多,感觉控制器有点臃肿,然后我就把逻辑挪到Model里面,开始在Model里面堆代码,Model里面的逻辑代码,慢慢又多了起来,跟Model访问数据库的代码,混合起来。感觉又有点乱了。

然后我现在又想了一个办法,就是在application\common\logic,加了一个logic逻辑层目录。

然后在每个控制器对应的logic建立一个,一个一样的类也是继承model类。

例如user控制器,然后我在logic\user.php。打算把user的逻辑写到这里。

感觉好科学,好牛逼!然后我开始写啊写。我去,user控制器里面有个

public function reguser() 方法,这样前台提交注册给控制器,控制器再转交给,logic\user.php 的reguser()去处理逻辑。如果logic\user.php的reguser(),需要访问数据库,那就交给application\model\user.php 去取数据,写数据。

然后现在问题来了,当我写了一个一个注册步骤后,\logic\user.php 里面,关于reguser()的各种逻辑处理,用了一堆function辅助完成。导致\logic\user.php为了完成这一个任务,写了5-6个函数配合。

那如果user控制器,再来一个其他的业务,例如listuser(),我又要去\logic\user.php,里面写一个listuser(),函数。如果这个逻辑又复杂,再需要2-3个函数配合完成。这个logic\user.php,又开始乱了。

这怎么办呢?

我现在又想到一招,我把\logic\user.php,再次拆分。在logic文件夹下面建立一个user文件夹,如果需要reguser()业务,我就在\logic\user下面建立一个reguser.php文件,这个类专门处理reguser()业务。

如果再来个listuser()业务,我就在\logic\user\下再建立一个listuser.php,他就专门干listuser.php业务。

上面说的太啰嗦了,感觉一堆废话,在描述我的意思,其实就是下面这个意思。

controller\user.php

function reguser(){}
function listuser(){}

logic\user\reguser.php
logic\user\listuser.php

model\user.php


我这么做可以吗?我的理解是感觉比较清爽了。看某个业务逻辑,只要打开那个对应的业务逻辑文件,就可以看到全部。没有参杂其他的。 你们都怎么做的呢?

洋洋洒洒,废话太多了。








最佳答案
评论( 相关
后面还有条评论,点击查看>>