首先來解釋一下什么是OOP: OOP: Object Oriented Programming,面向對象的程序設計。
所謂“對象”就是一個或一組數據以及處理這些數據的方法和過程的集合。面向對象的程序設計完全不同于傳統的面向過程程序設計,它大大地降低了軟件開發的難度,使編程就像搭積木一樣簡單,是當今電腦編程的一股勢不可擋的潮流。面向對象編程(Object Oriented Programming,OOP,面向對象程序設計)是一種計算機編程架構。OOP 的一條基本原則是計算機程序是由單個能夠起到子程序作用的單元或對象組合而成。
OOP 達到了軟件工程的三個主要目標:重用性、靈活性和擴展性。為了實現整體運算,每個對象都能夠接收信息、處理數據和向其它對象發送信息。OOP 主要有以下的概念和組件:
組件 - 數據和功能一起在運行著的計算機程序中形成的單元,組件在 OOP 計算機程序中是模塊和結構化的基礎。
抽象性 - 程序有能力忽略正在處理中信息的某些方面,即對信息主要方面關注的能力。
封裝 - 也叫做信息封裝:確保組件不會以不可預期的方式改變其它組件的內部狀態;只有在那些提供了內部狀態改變方法的組件中,才可以訪問其內部狀態。每類組件都提供了一個與其它組件聯系的接口,并規定了其它組件進行調用的方法。
多態性 - 組件的引用和類ji hui涉及到其它許多不同類型的組件,而且引用組件所產生的結果得依據實際調用的類型。
繼承性 - 允許在現存的組件基礎上創建子類組件,這統一并增強了多態性和封裝性。典型地來說就是用類來對組件進行分組,而且還可以定義新類為現存的類的擴展,這樣就可以將類組織成樹形或網狀結構,這體現了動作的通用性。
由于抽象性、封裝性、重用性以及便于使用等方面的原因,以組件為基礎的編程在腳本語言中已經變得特別流行。Python 和 Ruby 是最近才出現的語言,在開發時完全采用了 OOP 的思想,而流行的 Perl 腳本語言從版本5開始也慢慢地加入了新的面向對象的功能組件。用組件代替“現實”上的實體成為 JavaScript(ECMAScript) 得以流行的原因,有論證表明對組件進行適當的組合就可以在英特網上代替 HTML 和 XML 的文檔對象模型(DOM)。 解釋來源:http://baike.baidu.com/view/63596.htm
程序開發的這種思想非常好,讓我們web前端開發人員看到了希望,那做為一個WEB前端開發如何將這些思想進行移植呢?插句話:“思想是好的,但現在卻是跨領域了我們不可能直接將其思想完美無缺地進行移植”,我覺得值得說一下:“一、WEB標準興起的時間不是很長,也沒有這方面的經驗供大家借鑒。二、CSS樣式和HTML不可能像程序那樣有封裝,組件化CSS樣式可以做,但也要根據實際情況進行取舍,為什么?樣式組件化我個人認為有其局限性,它適用于高擴展性頁面,但這樣做對于開發人員來說將是麻煩的,樣式表中的選擇器被無限的獨立化,無法做繼承,而HTML在調用選擇器時也會增加很多的選擇器,一旦后期更新過頻HTML結構勢必要做大量調整,有違WEB標準思想中,只更新樣式不動結構!同時WEB標準也沒有抽象性這個概念,WEB標準還比較弱小……CSS并不是萬能的也沒那么神化!WEB標準需要的是過程,用心去體會其思想,只看到其表面是不行的,明白它的思想和核心加以強化就已經提升到了一個高度。
OOP思想移植到WEB標準中來,不僅是思想,更多的我想應該是現實與否的問題,我們當然要這種思想,但我們怎么做呢?分解,轉化……分解:首先對OOP主要的思想的個特性進行分解,樣式有組件化、繼承性,模塊化要結合HTML結構來做!重用性當然也要靠樣式來完成,定義最基礎的樣式,后邊再根據各模塊實際情況進行,當然是重用最基礎及普通共存的屬性,對于浮動、寬度、背景之類的,后繼再加以擴展定義與之前的基礎類選擇器配合使用就完成了新模塊了,列表就可以這樣進行處理,我在2007年12月酷6網新版時視頻列表全是基于這種手法進行處理!樣式組件是要根據實際情況進行采納,不存在包含或繼承關系,這樣做就給結構增加更多的選擇器來組合完成效果,也給樣式增加負擔,樣式表會很大,也有一個好處就是選擇器不會有沖突,最多只是同樣式的屬性,后邊的會覆蓋前邊的同個屬性,但組織好樣式是會避免沖突的產生!
利用OOP思想進行WEB標準開發會給整個開發以及維護帶來便捷,但目前還很有限,路還很長,也許再過幾年會有另外的技術來取帶!
新聞熱點
疑難解答