迄今為止,我們已看到Java對創建可重復使用的代碼片工作而言是多麼的有價值。“最大限度地可重復使用”的代碼單元擁有類,因為它包含一個緊密結合在一起的單元特性(字段)和單元動作(方法),它們可以直接經過混合或通過繼承被重復使用。
繼承和多形態性是面向對象編程的精華,但在大多數情況下當我們創建一個應用程序時,我們真正最想要的恰恰是我們最需要的組件。我們希望在我們的設計中設置這些部件就像電子工程師在電路板上創造集成電路塊一樣(在使用Java的情況下,就是放到WEB頁面上)。這似乎會成為加快這種“模塊集合”編制程序方法的發展。
“可視化編程”最早的成功——非常的成功——要歸功於微軟公司的Visual Basic(VB,可視化Basic語言),接下來的第二代是Borland公司Delphi(一種客戶/服務器數據庫應用程序開發工具,也是Java Beans設計的主要靈感)。這些編程工具的組件的像征就是可視化,這是不容置疑的,因為它們通常展示一些類型的可視化組件,例如:一個按慣或一個TextField。事實上,可視化通常表現為組件可以非常精確地訪問運行中程序。因此可視化編程方法的一部分包含從一個調色盤從拖放一個組件並將它放置到我們的窗體中。應用程序創建工具像我們所做的一樣編寫程序代碼,該代碼將導致正在運行的程序中的組件被創建。
簡單地拖放組件到一個窗體中通常不足以構成一個完整的程序。一般情況下,我們需要改變組件的特性,例如組件的色彩,組件的文字,組件連結的數據庫,等等。特性可以參照屬性在編程時進行修改。我們可以在應用程序構建工具中巧妙處置我們組件的屬性,並且當我們創建程序時,構建數據被保存下來,所以當該程序被啟動時,數據能被重新恢復。
到如今,我們可能習慣於使用對象的多個特性,這也是一個動作集合。在設計時,可視化組件的動作可由事件部分地代表,意味著“任何事件都可以發生在組件上”。通常,由我們決定想發生的事件,當一個事件發生時,對所發生的事件連接代碼。
這是關鍵性的部分:應用程序構建工具可以動態地詢問組件(利用映象)以發現組件支持的事件和屬件。一旦它知道它們的狀態,應用程序構建工具就可以顯示組件的屬性並允許我們修改它們的屬性(當我們構建程序時,保存它們的狀態),並且也顯示這些事件。一般而言,我們做一些事件像雙擊一個事件以及應用程序構建工具創建一個代碼並連接到事件上。當事件發生時,我們不得不編寫執行代碼。應用程序構建工具累計為我們做了大量的工作。結果我們可以注意到程序看起來像它所假定的那樣運行,並且依賴應用程序構建工具去為我們管理連接的詳細資料。可視化的編程工具如此成功的原因是它們明顯加快構建的應用程序的處理過程——當然,用戶接口作為應用程序的一部分同樣的好。