Home  >  Article  >  Backend Development  >  这样分离是否正确?

这样分离是否正确?

WBOY
WBOYOriginal
2016-06-06 20:52:37931browse

假设类的结构如下(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类,才好判断这个设计的合理性。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn