解耦---控制反转、依赖注入(服务容器)
耦合性高的代码不好维护,为了解耦,诞生了许多设计思想。
控制反转是其中一种设计思想;
依赖注入(服务容器方式)是其思想的一种实现。
(一)创建一个操作数据库、文件系统的代码最初开始这样写:
缺点:耦合性高,在共有函数中实例化对象,一旦以后DB类和文件系统类涉及参数一些变化,修改会有大的工作量。
(二)更改代码:
把DB类和文件类的构造移到了客户端,一旦涉及修改,工作量大大降低,但是新问题来了:为了创建一个Writer类,我们需要先创建好DB类,FileSystem类等,这对负责涉及Writer类的人来说,要求是很高的,他需要看很多其他类文档,一个个创建(可能还需要初始化),然后才能创建出他要的writer变量。
所以,能不能有一种更好的写法,使得写Writer类的人,用一种更加快捷的接口,就能创建和调用他要的类,甚至连参数都不用填。
(三)更改代码:服务容器
创建一个容器:
绑定服务:
容器依赖:
针对使用者来说,只使用这一句$writer=new Writer($db); 就可以调用服务,而不用new一堆对象,简化操作,实现封装。
« 中国风海报设计思路
|
iOS iPhone X 适配»