(原創) CSS就是一種泛型的實做 (C/C++) (template) (Web) (CSS)
2006-12-17 00:16
363 查看
我的網友Allen Kuo看了我的淺談泛型程式設計的文章,希望我用實際的程式來表達出泛型的威力,在用實際的程式demo之前,我發現我們身邊就有一個經典的泛型實做:CSS。
CSS成功之處就在於將tag和屬性分開,一個屬性可以套用任何tag,這就是泛型。這樣設計有什麼好處呢?若以OOP的角度,若要增加tag的功能,就是增加屬性,這樣導致每個tag都要去實做這些屬性,勢必工程浩大,但因為CSS和tag分離,所以若要增加功能,只要增加CSS即可,這樣所有的tag都一起增加該功能了。我們的程式也是這樣,藉由物件跟方法的分離,若要對物件增加功能,只要寫一個方法,所有的物件都一起增加了,不用對每個物件去增加功能。
CSS的另外一個威力在Blog的Skin就可看出來,同一個Blog,套上不同的CSS就可以完全變成另外一個網頁。泛型程式也是如此,同樣一個物件,只要配上不同的template function,物件就有了一個全新的功能,你不必擔心為了特定的物件撰寫member function後,其他物件就不能用了,因為是『泛型』,表示其他物件也都適用。
See Also
淺談泛型程式設計
CSS成功之處就在於將tag和屬性分開,一個屬性可以套用任何tag,這就是泛型。這樣設計有什麼好處呢?若以OOP的角度,若要增加tag的功能,就是增加屬性,這樣導致每個tag都要去實做這些屬性,勢必工程浩大,但因為CSS和tag分離,所以若要增加功能,只要增加CSS即可,這樣所有的tag都一起增加該功能了。我們的程式也是這樣,藉由物件跟方法的分離,若要對物件增加功能,只要寫一個方法,所有的物件都一起增加了,不用對每個物件去增加功能。
CSS的另外一個威力在Blog的Skin就可看出來,同一個Blog,套上不同的CSS就可以完全變成另外一個網頁。泛型程式也是如此,同樣一個物件,只要配上不同的template function,物件就有了一個全新的功能,你不必擔心為了特定的物件撰寫member function後,其他物件就不能用了,因為是『泛型』,表示其他物件也都適用。
See Also
淺談泛型程式設計
相关文章推荐
- (原創) 如何為Blog加上簡體中文(繁體中文)翻譯? (Web) (CSS) (JavaScript)
- (原創) 網頁設計請不要再強迫指定字型大小!! (Web) (CSS) (日記)
- (原創) 如何使用泛型模擬virtual? (C/C++) (template)
- (原創) 我的Design Pattern之旅[7]:使用泛型改進Adapter Pattern (OO) (Design Pattern) (C/C++) (template) (.NET) (C#) (C++/CLI) (VB)
- (原創) 網站CSS重新調整,全面支援IE6與FireFox 2.0!! (Web) (CSS)
- (原創) 如何讓泛型支援多個interface? (.NET) (C/C++) (C#) (template) (C++/CLI)
- (原創) 如何改變程式碼字型大小? (Web) (CSS)
- (原創) 如何在Blog內任意處動態產生Google AdSense廣告? (Web) (CSS) (JavaScript)
- (原創) 使用CSS畫圖 (Web) (CSS)
- (原創) 一個C++能跑的泛型,但在C#卻不能跑 (C/C++) (template) (.NET) (C#) (C++/CLI)
- (原創) 我的Design Pattern之旅[8]:如何使用泛型打造動態改變的Strategy Pattern? (OO) (Design Pattern) (C/C++) (template) (boost)
- (原創) 淺談泛型程式設計 (C/C++) (template)
- webpack file-loader 解析 css 文件中 background-image路径问题。
- Web前端开发基础 第四课(CSS小技巧)
- 收集Web前端 面试题 HTML+CSS部分
- golang web框架 gin 中template模板内容实时更新原理
- 用CSS 3和HTML 5实现五例Web特效
- 【web html css】调试工具谷…
- web前端小案例-纯css制作水滴效果