组合与继承与控制器

时间:2016-03-02 22:29:31

标签: php oop model-view-controller

编辑3:尝试重新提问。

class Config {
    protected $a;
    protected $b;
    public doStuff();
    public getA();
}

案例1

class Connection {
     protected $config;
     public function __construct(){
         $this->config = new Config();
     }
     public function getConfig(){
        return $this->config;
     }
}
$c = new connection();
$c->getConfig()->doStuff();
$otherClass->setA($c->getConfig()->getA());

CASE FACTORY / CONTROLLER

 $config = new Config();
 $config->doStuff();
 $a = $config->getA();
 $otherClass->setA($a);

区别是什么?

旧问题,不清楚

所以我正在阅读有关构图与继承的内容,即使它已经编程了8年,因为你知道建模程序并没有简单的清晰答案,例如飞机与双翼飞机和引擎这个简单的讯问在我脑海中浮现。

双翼飞机是一架飞机,一架飞机是发动机和HAS座椅,而且很可能是#34;视窗。

飞机舱有发动机,座椅和车窗。经典案例的构成。换句话说,该计划包含3个子对象。

现在,如果我们有一个飞机工厂怎么办?这个工厂在技术上会组装飞机,这意味着它将拥有飞机,发动机和座椅。现在考虑控制器的原理,该控制器充当模型和视图之间的中介。它几乎可以看作是创建视图所需的不同对象(模型)的工厂。

我的问题是,我可以简单地创建一个控制器/工厂,其中包含座位,平面,窗口对象,而平面本身没有嵌入平面对象中的那3个先前对象吗?

所以,基本上"去耦" " HAS逻辑"进入一个大工厂/控制器。你怎么看 ?

编辑:我的问题在这个具体的例子中没有意义,因为平面子对象实际上返回对象并且不做东西。想象一下,如果这些子对象只是在做东西并返回void

1 个答案:

答案 0 :(得分:1)

问题有点模糊,但基本上你所描述的是一个IoC容器,例如Spring,Guice(在Java世界中)或Symfony 2中的Service Container(在PHP中)。

在上述所有情况下,控制器(以及其他应用程序)都是普通类,不需要继承任何功能,因为在对象构造期间注入了所有必需的部分,这是由集中式工厂承担的