我能想到的一個例子是模板模式,它是一種執(zhí)行 IoC 的方式,也是 OCP 的一個例子。因為在模板模式中,我們定義了基本算法,它不能被子類更改,但可以覆蓋該算法的繼承步驟方法。所以將來如果我們想改變一個步驟的實現(xiàn),我們可以創(chuàng)建另一個子類并實現(xiàn)這些步驟。還有其他例子嗎?
1 回答

慕仙森
TA貢獻1827條經(jīng)驗 獲得超8個贊
開閉原則建議您應(yīng)該更喜歡具有可擴展行為的事物,這樣當您需要它們做新事情時就不必修改它們的源代碼。
當你做得對時,控制反轉(zhuǎn)同時是提供這種可擴展性的最簡單和最強大的方法。
這是最簡單的方法,因為當您為 IoC 定義可注入接口時,您只捕獲了您的需求。配置可擴展行為的其他方法要求您考慮消費者可能想要的一切。
這是最強大的方式,因為代碼可以做任何事情,提供一個 IoC 擴展點可以讓消費者做各種你想不到的事情,只要他們滿足你的接口定義的要求。同樣,這是因為注入的接口僅捕獲您自己的需求。
因此,OCP 和 IoC 以一種非常簡單的方式相關(guān):OCP 是一個目標,而 IoC 是實現(xiàn)目標的手段。
添加回答
舉報
0/150
提交
取消