我已经编程有一段时间了,但从未对理论知识感兴趣,可能会使用各种编程概念,但并不知道它的含义。
服务定位器: 对我来说,服务定位器是指记录快捷方式以通过减少代码量加速开发的工具。一个问题是:定位器是否只能指命名空间/类,还是我可以拥有变量的注册表?
这是我的理解:
$locator = new ServiceLocator()
$locator->set('app', new System\Application());
$locator->set('db', new System\Pdo());
// Get the objects
$locator->get('db')->connect();
$locator->get('app')->run();
依赖注入(Dependency Injection)和依赖注入容器(Dependency Injection Container):
在对象内部注入其他对象,无论是否使用工厂模式都可以更快地访问这些对象。那么什么是DI容器呢?
以下是我的理解:
$app = new System\Application(System\Config::load());
控制反转(Inversion of Control):
不理解这个设计模式(或者理解了但不确定我所做的是否属于IoC)。
那么,从理论上讲(最好有简单的例子),每个概念都意味着什么?我的理解正确吗,还有哪些错误/可以改进的地方?
谢谢!