Re: [問題] 想請問interface的具體意義

看板java作者 (!H45)時間19年前 (2007/01/26 02:09), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串26/29 (看更多)
※ 引述《qrtt1 (愚人)》之銘言: : ※ 引述《tinlans.bbs@whshs.cs.nccu.edu.tw (汀)》之銘言: : [...] : : 那就是 Liskov Substitution Principle; : : 因為蠻多 OO 設計者容易陷入程式與現實世界性質對應的迷思, : : 將 is-almost-a 的關係當成 is-a 的關係來描述, : : 常聽到的一個例子就是, : : 在數學上正方形是一種矩形, : : 所以就會有人做出一個 Rectangle 的 base class 出來, : : 並讓 Square 繼承它, : : 但是 Square 的 setWidth() 和 setHeight() 都會同時改變寬和高, : : 而 Rectangle 的這兩個 method 並不會如此, : : 當 programmer 以多型方式使用 Rectangle 家族的任何 objects 時, : : 會因此發生 semantic inconsistent 的現象。 : : 這類問題的嚴重性在於「程式碼不是只有一個人在維護」時, : [...] : 感謝分享啊,原來這總現象的 keywords 是 : semantic inconsistent : Liskov Substitution Principle : (知識與 keyword 是可遇不可求的 XD) : 不過既然 Square 是 Rectangle 的 special case : 這樣的關係應該以裝飾者的角度來看待嚕 : 正確地覆寫父類別並能通過 w/h 相等的 unit test : PS. 當然 >"< 我用說的確實比真的在寫時簡單 使用裝飾者的角度來看更顯得怪異 因為Decorator Pattern是動態地將責任加諸於物件上 但是Square似乎沒什麼更多的責任可以加諸在Rectangle上 Square只是一種長和寬相等的Rectangle罷了 提不上是Rectangle的什麼裝飾者 所以我認為用裝飾者的角度來看,只是讓事情更複雜化而已 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.213.121
文章代碼(AID): #15kF9k-C (java)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 26 之 29 篇):
文章代碼(AID): #15kF9k-C (java)