在你能夠使用Eclipse連接CVS服務器之前,你必須添加SSH服務器的主機公鑰到你的本地緩存中。
username就是你在SourceForge的用戶名. (注意在username前面的L是小寫的 )
"C:\Program Files\PuTTY\plink.exe"?cvs.sourceforge.net -l username
在軟件開發(fā)中,使用面向?qū)ο蠹夹g(shù)開發(fā)構(gòu)件并組裝應用系統(tǒng)是當前的流行做法。由于這些構(gòu)件是由對象構(gòu)成的,為使對象之間能夠通過相互觸發(fā)的方式進行交互,需要對象來維護靜態(tài)類信息和接口信息。這將導致對象之間具有隱式依賴
關(guān)系,同時還使對象依賴于外部服務(如通信中間件)。這些依賴關(guān)系不易于構(gòu)件在不同平臺間進行移植,使構(gòu)件的組裝變得更加困難。不過在統(tǒng)一平臺上構(gòu)件不存在移植和組裝困難的問題。在本框架中采用IoC反射注入容器來將各個構(gòu)件組合起來而且不破壞構(gòu)件的結(jié)構(gòu)(不需要強制構(gòu)件與容器耦合,不需要調(diào)用容器的API),構(gòu)件的實現(xiàn)類可以為普通的Java
Bean,而不需要強制實現(xiàn)某些接口或者方法。
以框架為基礎的方法,增加了構(gòu)件的可復用性,也提高了系統(tǒng)設計和演化的柔性。
在基于構(gòu)件的軟件開發(fā)中,為了解決構(gòu)件之間的數(shù)據(jù)交換,SUN公司發(fā)布了InfoBus標準用于構(gòu)件的動態(tài)數(shù)據(jù)共享。InfoBus符合100%純Java認證標準,它允許通過定義少量的接口并聲明使用這些接口的協(xié)議以在構(gòu)件之間進行動態(tài)數(shù)據(jù)交換。在HTML頁面中的Applet或者在JBuilder環(huán)境中的為JavaBeans都可以利用InfoBus進行交互。InfoBus也可以用于任意的Java類,如Applet,Servlet等等。
本系統(tǒng)中構(gòu)件小粒度的對象類。
構(gòu)件的基本屬性
從廣義上來說,構(gòu)件有如下的幾個基本屬性。
①、構(gòu)件是可獨立配置的單元,因此構(gòu)件必須自包容;
②、構(gòu)件強調(diào)與環(huán)境和其他構(gòu)件的分離,因此構(gòu)件的實現(xiàn)是嚴格封裝的,外界沒機會或沒必要知道構(gòu)件內(nèi)部的實現(xiàn)細節(jié);
③、構(gòu)件可以在適當?shù)沫h(huán)境中被復合使用,因此構(gòu)件需要提供清楚的接口規(guī)范,可以與環(huán)境交互;
④、構(gòu)件不應當是持續(xù)的,即構(gòu)件沒有個體特有的屬性,理解為構(gòu)件不應當與自身副本區(qū)別。
從以上四個屬性可以看出,構(gòu)件沿襲了對象的封裝特性,但同時并不局限在一個對象,其內(nèi)部可以封裝一個或多個類、原型對象甚至過程,結(jié)構(gòu)是靈活的。構(gòu)件突出了自包容和被包容的特性,這就是在軟件工廠的軟件開發(fā)生產(chǎn)線上作為零件的必要特征。
構(gòu)件的構(gòu)造原則
構(gòu)件是給人們可復用的軟件標準件,因此,構(gòu)件必須由構(gòu)件開發(fā)商預先開發(fā)、預先構(gòu)造,構(gòu)件提供商應該非常明確構(gòu)件系統(tǒng)的目標、方向,確定構(gòu)件的構(gòu)造原則。
其基本原則是:一開始就把重用性作為初始設計的一個目標,所有構(gòu)件的構(gòu)造目的都是為組裝其它應用所復用和共享。因此,從構(gòu)件分析、設計到構(gòu)件提取、描述、認證、測試、分類和入庫,都必須圍繞重用這個目的而進行。
構(gòu)造構(gòu)件要遵循其它原則:
①、增強構(gòu)件的可重用性需要提高抽象的級別,應有一套有關(guān)名字,異常操作,結(jié)構(gòu)的標準。
②、可理解性,必須伴隨有完整、正確、易讀的文檔,具有完整的說明,有利重用。
③、構(gòu)件代表一個抽象,有很高的內(nèi)聚力,提供一些所需的特定操作、屬性、事件和方法接口。
④、提高構(gòu)件的重用程度,分離功能構(gòu)件,將可變部分數(shù)據(jù)化、參數(shù)化,以適合不同的應用需求。
⑤、構(gòu)件的尺寸大小、復雜度適中。
⑥、構(gòu)件要易于演化,數(shù)據(jù)與其結(jié)構(gòu)是封裝在一起的,數(shù)據(jù)存放在數(shù)據(jù)構(gòu)件對象中,能主動解釋其結(jié)構(gòu)。
一、軟件體系結(jié)構(gòu)和框架的定義
軟件體系結(jié)構(gòu)的英文單詞是“architecture”. Architecture的基本詞義是建筑、建筑學、建筑風格。
軟件體系結(jié)構(gòu)雖然根植于軟件工程,但還處于一個研究發(fā)展的階段,迄今為止還沒有一個為大家所公認的定義。
《設計模式》中對框架的定義是框架就是一組相互協(xié)作的類,對于特定的一類軟件,框架構(gòu)成了一種可重用的設計。
軟件框架是
項目軟件開發(fā)過程中提取特定領(lǐng)域軟件的共性部分形成的體系結(jié)構(gòu),不同領(lǐng)域的軟件項目有著不同的框架類型。框架的作用在于:由于提取了特定領(lǐng)域軟件的共性部
分,因此在此領(lǐng)域內(nèi)新項目的開發(fā)過程中代碼不需要從頭編寫,只需要在框架的基礎上進行一些開發(fā)和調(diào)整便可滿足要求;對于開發(fā)過程而言,這樣做會提高軟件的
質(zhì)量,降低成本,縮短開發(fā)時間,使開發(fā)越做越輕松,效益越做越好,形成一種良性循環(huán)。
框
架不是現(xiàn)成可用的應用系統(tǒng)。是一個半成品,需要后來的開發(fā)人員進行二次開發(fā),實現(xiàn)具體功能的應用系統(tǒng)。框架不是“平臺”,平臺概念比較模糊可以是一種操作
系統(tǒng),一種應用服務器,一種數(shù)據(jù)庫軟件,一種通訊中間件等地那個,因此平臺在應用平臺主要指提供特定服務的系統(tǒng)軟件,而框架更側(cè)重了設計,開發(fā)過程,或者
可以說,框架通過調(diào)用平臺提供的服務而起的作用。
框架不是工具包或者類庫,調(diào)用API并不就是在使用框架開發(fā),緊緊使用API是,開發(fā)者完成系統(tǒng)的主題部分,并不時地調(diào)用類庫實現(xiàn)特定任務。而框架構(gòu)成了通用的、具有一般性的系統(tǒng)主體部分,二次開發(fā)人員只是像做填空一樣,根據(jù)具體業(yè)務,完成特定應用系統(tǒng)中與眾不同的特殊部分。
二、框架與架構(gòu)之間的關(guān)系
框架不是構(gòu)架(即軟件體系機構(gòu))。體系結(jié)構(gòu)確定了系統(tǒng)整體結(jié)構(gòu)、層次劃分,不同部分之間的協(xié)作等設計考慮。框架比架構(gòu)更具體。更偏重于技術(shù)涉嫌。確定框架后,軟件體系結(jié)構(gòu)也隨之確定,而對于同一軟件體系結(jié)構(gòu)(比如Web開發(fā)中的MVC),可以通過多種框架來實現(xiàn)。
三、框架與設計模式之間的關(guān)系
設
計模式和框架在軟件設計中是兩個不同的研究領(lǐng)域。設計模式研究的是一個設計問題的解決方法,一個模式可應用于不同的框架和被不同的語言所實現(xiàn);而框架則是
一個應用的體系結(jié)構(gòu),是一種或多種設計模式和代碼的混合體雖然它們有所不同,但卻共同致力于使人們的設計可以被重用,在思想上存在著統(tǒng)一性的特點,因而設
計模式的思想可以在框架設計中進行應用。
框架和設計模式存在著顯著的區(qū)別,主要表現(xiàn)在二者提供的內(nèi)容和致力應用的領(lǐng)域。
1)從應用領(lǐng)域上分,框架給出的是整個應用的體系結(jié)構(gòu);而設計模式則給出了單一設計問題的解決方案,并且這個方案可在不同的應用程序或者框架中進行應用。
2)從內(nèi)容上分,設計模式僅是一個單純的設計,這個設計可被不同語言以不用方式來實現(xiàn);而框架則是設計和代碼的一個混合體,編程者可以用各種方式對框架進行擴展,進而形成完整的不同的應用。
3)以第二條為基礎,可以得出設計模式比框架更容易移植:框架一旦設計成形,雖然還沒有構(gòu)成完整的一個應用,但是以其為基礎進行應用的開發(fā)顯然要受制于框架的實現(xiàn)環(huán)境;而設計模式是與語言無關(guān)的,所以可以在更廣泛的異構(gòu)環(huán)境中進行應用。
總之,框架是軟件,而設計模式是軟件的知識體,提升框架的設計水平。