在Ptt soft_job看到這本書的推薦。
真是令人大開眼界,很多困混在書中都慢慢的可以找到解答。 原來,我一直搞不懂抽象到底是為什麼,什麼時候下用的,是因為這是一個大哉問, 要到設計階段後才會懂他的威力。
目前閱讀進度到工廠模式的1/2,目前的理解, 當在設計的時候,針對實體去設計,用抽象方式去設計,然後以宣告的時候在產生一個具體的實體。 大概就是這樣的感覺。
Laptop myLaptop01 = new MacBookPro();
Laptop myLaptop02 = new ASUSLaptop();
(當然,MacBookPro,ASUSLaptop必須要繼承自Laptop這個抽象型別) 然後一些共通會有的就可以在抽象型別裡面定義好,使得這些繼承他的實體必須要作這些事情。 舉例來說好了, 不管是MBP還是ASUS的筆電都是會有開機這個功能。 但是OS卻不一定相同,(但是基本上都會有os),OS基本上也是一個抽象的東西,OSX/Windows才算是實體。 利用抽象的方式,最大的優點就是可以克服,所謂大同小異的問題。
而不是一種類別就設計一個class,這樣對維護上比較輕鬆。 簡單來說,抽象型別用來處理,一定會有,但是有點不同的屬性上是很方便的。
目前理解大概就到這邊,如有謬誤,歡迎指正。 XD
沒有留言 :
張貼留言