kirato
kirato

弱弱IT狗一名, 由於太弱只好睇更多技術相關資料, 主要用自己理解後寫筆記。 希望以後可以自由編寫屬於自己既系統。 有5少喜好,但冇咩時間, 所以都希望可以自由玩自己中意既事~

《K的技術學習筆記》——解耦合的設計概念:<Inversion of Control>

控制反轉(Inversion of Control)是一種解除class與class之間耦合的概念。在傳統的程式寫法中,當物件A需要物件B時,物件A需要自己制造物件B。若果套用了控制反轉(Inversion of Control)的概念,就會變成物件A不需要自己制做物件B,而是由第三方提供物件B給物件A。這裡就由主動 創建物件反轉為被動 接收物件。整個控制流程由主動 變為被動

而上一篇文章K的技術學習筆記》——提高彈性降低耦合:<Dependency Injection>中提及的依賴注入 (Dependency injection)就是控制反轉(Inversion of Control)的實作。

為何說解耦合,這是因為物件A並不需要知道包含物件B制造時所需要的商業邏輯,物件A只需要專注自己本來要做的事。

這裡用回上一篇提及的例子:手機。現代大多數人都會用到電話,若是按傳統的程式寫法,我們要用手機就要懂得制造手機,才能用手機的功能,但是我們只想要用手機來打電話或是下載App。我們要用手機的功能就要學關於制造手機的智識。每換一部就要學一次。若是按控制反轉(Inversion of Control)的概念,我們不用懂如何制造手機,只需要向第三方購買就可以。這樣我們只需要專注如何操作手機便可。

而實作這個概念除了需要依賴注入 (Dependency injection)外,還有要如何制造物件的部份。制造物件的部份就要用到工廠方法模式(Factory Method Pattern) ,這是設計模式(Design Pattern)的其中一種。完整流程是用工廠方法模式(Factory Method Pattern)制造物件,物件制造後,再經依賴注入 (Dependency injection)注入相關物件裡。

之後,我就會寫一系列設計模式(Design Pattern)的文章,當中會提及工廠方法模式(Factory Method Pattern) ,到時再深入講解這個模式。

CC BY-NC-ND 2.0 版权声明

喜欢我的文章吗?
别忘了给点支持与赞赏,让我知道创作的路上有你陪伴。

加载中…
加载中…

发布评论