[架構]接口行爲的擴展

接口行爲的擴展,經常面臨這樣的問題,之前已經定義好一個接口,且該接口已經在很多地方使用到,現在我們想讓新增新方法。

如下圖所示,已經定義了接口IVedioMedia,已經有RM和Mpeg實現了它。現在如果在IVedioMedia接口中新增resize()方法,那麼就要連同RM和Mpeg一同修改,這已經違反了open-close原則,即在添加新功能的同時,不修改原有的、已經存在的代碼。這時候我們應該定義新的interface接口——IResizable,之後新建RMAdapter來實現這個接口,同時讓RMAdapter繼承RM,這樣就在實現新功能的同時,不修改IVediaoMedia和RM,做到了不修改已經存在的代碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章