- 其他语言著名框架 Java Spring .Net Spring.Net
- 对象的创建依靠配置,在外部容器中被创建
-
对象的控制权在配置中
-
正常三层伪代码:
<?php
class Logic
{
/**
* @var
* @author Jiang Haiqiang
* @email jhq0113@163.com
*/
public $dataAccess;
/**
* Logic constructor.
*/
public function __construct()
{
//$this->dataAccess = new MysqlData();
$this->dataAccess = new OracleData();
}
/**
* @param $id
* @author Jiang Haiqiang
* @email jhq0113@163.com
*/
public function getInfo($id)
{
$this->dataAccess->getInfo($id);
}
}
- 不符合设计模式的开闭原则:对扩展开放,对修改进行关闭
<?php
class Logic
{
/**
* @var
* @author Jiang Haiqiang
* @email jhq0113@163.com
*/
public $dataAccess;
/**
* Logic constructor.
*/
public function __construct()
{
//$this->dataAccess = new MysqlData();
$this->dataAccess = Factory::get('dataAccess');
}
/**
* @param $id
* @author Jiang Haiqiang
* @email jhq0113@163.com
*/
public function getInfo($id)
{
$this->dataAccess->getInfo($id);
}
}