类与类的解耦

框架的目的是为了让代码清晰,分块,复用性能高.ioc主要目的是依赖注入.减小类与类之间的依赖关系.某一类需要完成某项任务的时候,需要其他类的帮助.这里就需要其它类的帮助.如果在一个类中直接new出一个或几个辅助的类完成某项任务,这样类与类直接就过分依赖,一个类发生变化,依赖它的类,全部都得变.为了避免这种情况,类的控制权利交个容器,而不是由类来控制.factory这个中介的主要服务就是帮你实例化,辅助类.这样就不用直接与辅助类发生关系,这个过程局势解耦.辅助类中的变化,在工厂中统一修改就可以了,但是这样的问题还是存在的,如果很多主类中调用了工厂和里面的方法.如果工厂因为某种特殊情况要换个名字,那么我们是不是要逐一修改主类呢.不需要的.如果在主类中注入辅助类.注入一个辅助类的对象,就可以完成想做的事情了.工厂模式和注入模式都是为了解耦.不同的是工厂把辅助类一一对应,注册到类的实例化静态方法中,在laravel中的模型可以看做一个集合的工厂吧,当你需要什么类型的数据的时候,这个工厂可以去数据库取出数据,加工好.你需要什么样的方式,它可以提供一些方法使用,比如将数据分页显示等等功能.而依赖注入是把辅助类的实例化对象注册到类中的一个静态数组.在laravel框架中,类似这样吧.2018-03-10 15-43-58屏幕截图.png

日记本

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

赞赏支持
被以下专题收入,发现更多相似内容