這學期剛上完Design Pattern的課程,使用的教科書是 J. Vlissides. 1998. Pattern Hatching: Design Patterns Applied. Addison-Wesley Longman Ltd. 這本書的作者跟老師是很好的朋友,Gang of Four之一,作者提到書中所有的設計都離不開兩大宗旨, Favor object composition over class inheritance 和 Program to interface not implementation ,這篇會稍微介紹紀錄一下兩個要點目的是什麼,之後再慢慢介紹其他的pattern。
Favor object composition over class inheritance
當需要重用程式碼時,比較好的方法應該是利用 Composition 而非 Inheritance,利用 Composition 物件只會透過自己 interface 訪問自己的功能,不會打破封裝,關聯性也較低。
Program to interface not implementation
不要將變數宣告為特定具體的類別,而是要定義為抽象類別的 interface若是使用繼承,子類別實作的行為必須要與父類別或是介面所定義的行為一致,並且子類別要能夠完全取代掉父類別,也因為如此,只要知道interface就可以統一接口,對所有的子類別進行操作。
全站熱搜