Re: [概念] 使用抽象類別到底有何好處 ?

看板OOAD作者 (旺小王)時間10年前 (2013/07/29 20:23), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
※ 引述《Tripadvisor (探險家)》之銘言: : 假設我有好幾個子類別實作了抽象類別中的某個函數,在子 : 類別中各個類別都有自己的實作方式,如此就我看來抽象 : 類別只是提供了一個共同的 "方法名稱" 的優點,然而抽象名稱 : 就只有這點兒好處嗎 ? 讓我覺得可有可無都沒差,反正各個 : 子類別都有自己的作法,就算我不繼承這個抽象類別,我在每個 : 子類別自己設定相同的函數名稱不就好了 ? 這取決你使用的程式語言特性。 像 Python、Ruby 之類的語言,根本沒有 interface 或是 abstract method, 而是實際執行時才判斷該物件有沒有實作被呼叫的 method。所以你甚至不需要 繼承特定類別。 但是像 C++、Java 等語言,則是在編譯時期依靠 object type 來判斷 是否有實作被呼叫的 method。當你有很多個類似的 class 要提供相同作用的 method ,定義 abstract base-class 或宣告 interface 是最簡單的作法。 不然就得針對每個具體的類別寫一段叫用的程式,或者是用 reflection 等 麻煩的方法。 《Design Pattens》成書的年代動態語言還不流行,自然有些東西在現在看來 會不太適用。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.88.246
文章代碼(AID): #1HzbxGR3 (OOAD)
文章代碼(AID): #1HzbxGR3 (OOAD)