弱弱IT狗一名, 由于太弱只好睇更多技术相关资料, 主要用自己理解后写笔记。 希望以后可以自由编写属于自己既系统。 有5少喜好,但冇咩时间, 所以都希望可以自由玩自己中意既事~

《K的技术学习笔记》——解耦合的设计概念:

控制反转(Inversion of Control)是一种解除class与class之间耦合的概念。在传统的程式写法中,当物件A需要物件B时,物件A需要自己制造物件B。若果套用了控制反转(Inversion of Control)的概念,就会变成物件A不需要自己制做物件B,而是由第三方提供物件B给物件A。这里就由主动 创建物件反转为被动 接收物件。整个控制流程由主动 变为被动。

为何说解耦合,这是因为物件A并不需要知道包含物件B制造时所需要的商业逻辑,物件A只需要专注自己本来要做的事。

这里用回上一篇提及的例子:手机。现代大多数人都会用到电话,若是按传统的程式写法,我们要用手机就要懂得制造手机,才能用手机的功能 ,但是我们只想要用手机来打电话或是下载App。我们要用手机的功能就要学关于制造手机的智识。每换一部就要学一次。若是按控制反转(Inversion of Control)的概念,我们不用懂如何制造手机,只需要向第三方购买就可以。这样我们只需要专注如何操作手机便可。

而实作这个概念除了需要依赖注入 (Dependency injection)外,还有要如何制造物件的部分。制造物件的部分就要用到工厂方法模式(Factory Method Pattern) ,这是设计模式(Design Pattern)的其中一种。完整流程是用工厂方法模式(Factory Method Pattern)制造物件,物件制造后,再经依赖注入 (Dependency injection)注入相关物件里。

之后,我就会写一系列设计模式(Design Pattern)的文章,当中会提及工厂方法模式(Factory Method Pattern) ,到时再深入讲解这个模式。