时间:2021-07-01 10:21:17 帮助过:7人阅读
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类,才好判断这个设计的合理性。