2022年1月11日 星期二

[Geroge]面向對象設計-介面隔離原則ISP

 --影片內容--

介面隔離原則(Interface Segregation Principle)

定義: 使用多個專一的介面, 總比一個總介面好

高內聚

優點: 會使一個軟體系統功能擴展時, 修改的壓力不會傳到其他對象那裏


例子:

我們有一個星探類Search, 他要來找尋明演員, 一個好的女演員需要好看good looking, 好身材good figure, 還有好的脾氣temper, 我們就用IPrettyGirl做為這些抽象標準的介面, Search 只要找到IPrettyGirl就行, 而Angelababy剛好實行這個介面, 具有三種能力, 如下圖







然而, 今天變更需求, 有另外一個星探, 他只需要女生有 好身材 good figure就可以了, 那他和IPrettyGirl使用相同介面就不合適, 因為他只需要其中的niceFire功能, 因此就調整如下








我們將INiceFigure抽離出來成另一個介面, 本來的IPrettyGirl改名IGoodGirl, 然後生出一個抽象類 BasePrettyGirl 去實行INiceFigure和IGoodGirl這兩個介面, 因此AngelaBaby作為子類去繼承BasePrettyGirl , 此時SearchB 最小需求~想要有好身材的女生, 就能滿足, 也就是要使用到更多功能的可以去依賴BasePrettyGirl 介面, 而只要看好身材只需要依賴INiceFigure介面, 這樣就達到很好的擴展





















































感想, 這樣做的好處, 對於SearchB來說, AngelaBaby更多的細節就隱藏起來, 他只需要知道她是不是implement Nice Figure就好

參考: 

https://www.youtube.com/watch?v=W7b7zcxUxr8&list=PLGmd9-PCMLhb16ZxeSy00qUsBazXgJyfM&index=8

https://github.com/iw5420/geroge-design-pattern

沒有留言:

張貼留言

創業想法1

現在有駐點工作的公司 今天突然想到 那為什麼沒有遠端駐點公司 就是接國外的職位 幫他找台灣人 在公司上遠端工作的職缺 有可能是因為時差 所以這種公司上班時間不同, 並不好管理 但是感覺理論上是存在需求 就是台灣人想找遠端職缺, 但是可能語言上或技能上還差點火候 公司提供培訓, 並...