首页  >  文章  >  后端开发  >  这样分离是否正确?

这样分离是否正确?

WBOY
WBOY原创
2016-06-06 20:52:37930浏览

假设类的结构如下(MVC控制器):

class Controller {
    	public function action1()
	{
            if(condition1)
            {
                // ……
            }
            // elseif(condition2){……}
            // elseif(conditionN){……}
            else
            {
                // ……
            }
	}

    	public function action2()
	{
            if(condition1)
            {
                // ……
            }
            // elseif(condition2){……}
            // elseif(conditionN){……}
            else
            {
                // ……
            }
	}
}

分离后(不考虑接口):

class Controller_Action1 extends Controller {
    	public function condition1()
	{
            ……
	}

    	public function condition2()
	{
            ……
	}

    	public function conditionN()
	{
            ……
	}
}

class Controller_Action2 extends Controller {
    	public function condition1()
	{
            ……
	}

    	public function condition2()
	{
            ……
	}

    	public function conditionN()
	{
            ……
	}
}

回复内容:

假设类的结构如下(MVC控制器):

class Controller {
    	public function action1()
	{
            if(condition1)
            {
                // ……
            }
            // elseif(condition2){……}
            // elseif(conditionN){……}
            else
            {
                // ……
            }
	}

    	public function action2()
	{
            if(condition1)
            {
                // ……
            }
            // elseif(condition2){……}
            // elseif(conditionN){……}
            else
            {
                // ……
            }
	}
}

分离后(不考虑接口):

class Controller_Action1 extends Controller {
    	public function condition1()
	{
            ……
	}

    	public function condition2()
	{
            ……
	}

    	public function conditionN()
	{
            ……
	}
}

class Controller_Action2 extends Controller {
    	public function condition1()
	{
            ……
	}

    	public function condition2()
	{
            ……
	}

    	public function conditionN()
	{
            ……
	}
}

从分工合作的角度来说,这么分开挺好的。

在symfony框架中,多个actions可以写在一个actions.class.php文件里面,也可以每一个action只写在一个XxxAction.class.php里,根据实际情况发现还是分开写好,这样很容易把工作分给更多的人完成

当然你这里还没有分离到每个action一个文件的程度,但是相对比最开始所有actions一个文件来说,还是要合理不少。如果一个团队的分工就是按照module的概念(module是某几个actions的集合)去分的,那么你这么分其实也足够了

你这里用的是继承,继承的目的是提取共性, 所以你应该展示你的controller类,才好判断这个设计的合理性。

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn