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