架構(gòu),、框架、模式,、模塊,、組件、插件,、控件,、中間件的含義和區(qū)別,。經(jīng)常看到這些概念,,但是有些含糊,,花點(diǎn)兒功夫整理一下,結(jié)果還是有些地方理解的不透徹,,先將整理的內(nèi)容寫下來(lái),,以供交流。左側(cè)英文欄中有些單詞被分成了兩半,,放到了兩行中,,看的時(shí)候需要注意。歡迎各路大蝦,、大牛,、大神拍磚警醒,油錘灌頂~~~
術(shù)語(yǔ) |
英文解釋
|
中文解釋 |
軟件架構(gòu)
|
architecture:
- Architecture is the art of planning, designing, and constructing buildings.
|
- 軟件架構(gòu),,也稱為軟件體系結(jié)構(gòu),。簡(jiǎn)單地說(shuō),軟件架構(gòu)就是一個(gè)藍(lán)圖,,是一種設(shè)計(jì)方案,,將客戶的不同需求抽象成為抽象組件,并且能夠描述這些抽象組件之間的通信和調(diào)用,。它是對(duì)軟件系統(tǒng)的系統(tǒng)組織,,是對(duì)構(gòu)成系統(tǒng)的構(gòu)件的接口,行為模式,,協(xié)作關(guān)系等體系問(wèn)題的決策總和,。它不僅涉及到結(jié)構(gòu)與行為,而且還涉及到系統(tǒng)的使用,,功能,,性能,適應(yīng)性,,重用性,,可理解性,經(jīng)濟(jì)性和技術(shù)約束的權(quán)衡和美學(xué)考慮,。
- 使用方法:軟件架構(gòu)會(huì)分析工程中的問(wèn)題,,針對(duì)問(wèn)題設(shè)計(jì)解決方案,針對(duì)解決方案分析應(yīng)具有的功能,,針對(duì)功能設(shè)計(jì)軟件系統(tǒng)的層次和模塊及層次模塊之間的邏輯交互關(guān)系,,確定各個(gè)功能如何由這些邏輯實(shí)現(xiàn)。工程開發(fā)者,,可以根據(jù)軟件架構(gòu)中分析出來(lái)的層次和模塊進(jìn)行軟件的編寫,。
|
軟件框架
|
Framework :
- A framework is a structure that forms a support or frame for something. A structure is something that consists of parts connected together in an ordered way.
- A framework is a set of classes that embodies an abstract design for solutions to a family of related problems, and supports reuses at a larger granularity than classes.
- A software framework provides the skeleton of an application that can be customized by an application developer.
|
- 軟件框架是項(xiàng)目軟件開發(fā)過(guò)程中提取特定領(lǐng)域軟件的共性部分形成的體系結(jié)構(gòu),,不同領(lǐng)域的軟件項(xiàng)目有著不同的框架類型。框架不是現(xiàn)成可用的應(yīng)用系統(tǒng),,而是一個(gè)半成品,,是一個(gè)提供了諸多服務(wù),供開發(fā)人員進(jìn)行二次開發(fā),,實(shí)現(xiàn)具體功能的應(yīng)用系統(tǒng),。特別強(qiáng)調(diào),框架是一個(gè)可供二次開發(fā)的程序?qū)嶓w,。
- 框架與架構(gòu)關(guān)系 :首先說(shuō)框架不是架構(gòu),,框架比架構(gòu)更具體,更偏重于技術(shù),,而架構(gòu)偏重于設(shè)計(jì),。還有一個(gè)關(guān)系就是架構(gòu)可以通過(guò)多種框架來(lái)實(shí)現(xiàn)。
- 另外,,生活中說(shuō)的“框架”跟軟件術(shù)語(yǔ)中“框架”的意思不同,,要注意區(qū)別。
- 使用方法:特定領(lǐng)域軟件有一些共性部分形成的軟件架構(gòu),,將這個(gè)共性的軟件架構(gòu)開發(fā)出來(lái),形成一個(gè)可供二次開發(fā)的程序?qū)嶓w,,這個(gè)程序?qū)嶓w就是軟件框架,。 可供二次開發(fā)。
|
設(shè)計(jì)模式
|
Pattern:
- A pattern is the repeated or regular way in which something happens or is done. If you refer to a way of doing something, you are referring to how you can do it, for example, the action
you can take or the method you can use to achieve it.
|
- 設(shè)計(jì)模式強(qiáng)調(diào)的是一個(gè)設(shè)計(jì)問(wèn)題的解決方法,,是一套被反復(fù)使用,、多數(shù)人知曉的、經(jīng)過(guò)分類編目的,、代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié),。
- 框架與設(shè)計(jì)模式關(guān)系 :設(shè)計(jì)模式研究的是針對(duì)單一問(wèn)題的設(shè)計(jì)思路和解決方法,一個(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)用,。
- 架構(gòu)與設(shè)計(jì)模式關(guān)系 :兩者的關(guān)系也是很好區(qū)分的,,設(shè)計(jì)模式主要是針對(duì)單一問(wèn)題的解決方法,范疇比較小,,而架構(gòu)是高層次的針對(duì)體系結(jié)構(gòu)的一種設(shè)計(jì)思路,,范疇比較大,。可以這么說(shuō),,一個(gè)架構(gòu)中可能會(huì)出現(xiàn)多個(gè)設(shè)計(jì)模式來(lái)解決多個(gè)架構(gòu)中的問(wèn)題,。
- 使用方法:針對(duì)特定問(wèn)題提供解決方案,以供問(wèn)題解決者參考,。
|
模塊
|
Module:
- In software, a module is a part of a program. Programs are composed of one or more independently developed modules that are not combined until the program is linked. A single module
can contain one or several routines.
- A software module encapsulates related functions in a program together.
- one of a set of parts that can be connected or combined to build or complete something.
|
- 模塊,,module,模塊是一個(gè)通用概念,,可能從功能或其他目的來(lái)區(qū)分,。模塊可以是子系統(tǒng)子領(lǐng)域,主要取決于上下文環(huán)境的用法,。通常我們會(huì)說(shuō)程序模塊,,功能模塊,這實(shí)際上是在按照不同的標(biāo)準(zhǔn)對(duì)模塊的內(nèi)容和范圍的不同定義,。
- 通常我們說(shuō)的程序模塊,,是指的一段能夠?qū)崿F(xiàn)某個(gè)有價(jià)值目標(biāo)的的成員代碼段,這樣的東西,,我們還有另一個(gè)稱呼:例程,,而例程有兩種,即函數(shù)和過(guò)程,,它們都能實(shí)現(xiàn)一個(gè)有價(jià)值的目標(biāo)供其它的模塊使用,。
- 而功能模塊的說(shuō)法一般在分析和設(shè)計(jì)階段出現(xiàn)得比較頻繁,通常我們用一個(gè)功能模塊來(lái)說(shuō)明一個(gè)功能所包含的系統(tǒng)行為,,當(dāng)我們覺(jué)得分析的顆粒度可能更大一些的時(shí)候我們可以用一個(gè)功能模塊來(lái)表示一組功能的集合,,這似乎讓我們覺(jué)得,模塊這個(gè)詞的概念和“子系統(tǒng)”這個(gè)詞的概念有些模糊,,是的,,事實(shí)上,有些大的模塊會(huì)慢慢的讓我們覺(jué)得稱呼他們子系統(tǒng)更合適,,或者一個(gè)子系統(tǒng),,我們會(huì)慢慢發(fā)現(xiàn)你還包含著一些模塊。
- 但是無(wú)論怎樣,,定義模塊的原則應(yīng)該是:高內(nèi)聚和低耦合,。
- 使用方法:就是一個(gè)描述全局中問(wèn)題的概念,至于全局是什么,,這個(gè)隨便,,比如一個(gè)人,可以看成各種功能系統(tǒng),,那么模塊就是各種呼吸系統(tǒng),、消化系統(tǒng)等,;可以看成社會(huì)關(guān)系,模塊就有勞動(dòng)能力,、生產(chǎn)關(guān)系等,,全在于怎么看了。
|
組件
|
Component:
- The components of something are the parts that it is made of.
|
- 組件,,Component,,首先說(shuō),組件已經(jīng)不是一個(gè)抽線的概念了,,是封裝了一個(gè)或多個(gè)實(shí)體程序模塊的實(shí)體,。
- 組件這個(gè)詞通常是現(xiàn)在描述產(chǎn)品的時(shí)候出現(xiàn),一個(gè)大的產(chǎn)品會(huì)有很多小的部分組成,,而小的部分除了是一個(gè)大的組件的部分以外,,自己可能還包含更小的組件,所以組件是遞歸的,,那么組件到底是什么呢,?最常見的組件就是我們已經(jīng)寫好的程序代碼,任何一小段代碼都可以是一個(gè)組件,,它可以和其它代碼段連接起來(lái)組成更大的一段程序代碼,,一個(gè)更大的組件,然后可能是一個(gè)函數(shù),,或者一個(gè)類程序單元,,或者數(shù)個(gè)類單元文件的集成,當(dāng)不同的組件的組裝形成更大的組件時(shí)候,,我們實(shí)際就是在做我們通常提到的一件事情:集成,,軟件中有很多集成工作要做,,每日集成,,重要版本集成等等,集成是什么呢,?軟件中,,就是鏈編調(diào)試。這樣一來(lái),,我們知道集成是需要對(duì)被集成的組件有規(guī)模要求的,,換句話說(shuō),至少是一個(gè)單元文件,,所以通常說(shuō)到的組件就可以直觀的理解為單元文件,,或者可以組成軟件的其他文件,以及編譯后的文件,。
- 組件是面向?qū)ο罄锩娴囊粋€(gè)重[chóng]用的概念,,也稱為構(gòu)件,,組件非常類似機(jī)械中構(gòu)件概念,現(xiàn)在機(jī)械都是走向構(gòu)件生成,,通過(guò)不同構(gòu)件組裝成一個(gè)機(jī)械成品,,軟件目前也是這樣的一個(gè)生成方式。
- 維基百科上說(shuō),,組件之間通過(guò)接口進(jìn)行交互,,這個(gè)挺起來(lái)有些象插件,現(xiàn)實(shí)中也是這樣,,比如一個(gè)dll文件,,可以說(shuō)是插件,也可以說(shuō)是組件,。插件是是組件的一個(gè)子類,,就是將組件中具有某些特點(diǎn)的組件歸為插件,這些特點(diǎn)是:益于與系統(tǒng)分離,,接口明晰,,可以替換的程序模塊。
- 組件強(qiáng)調(diào)的是封裝,,利用接口進(jìn)行交互,。因?yàn)榉庋b有不同層次的封裝,對(duì)應(yīng)不同層次的接口,,(比如將一個(gè)人封裝成一個(gè)組件,,比如國(guó)家主席,多個(gè)人封裝成一個(gè)組合,,比如中央的常委們),,所以組件所表述的范圍和層次也是多種多樣的,在談?wù)摻M件的時(shí)候一定要分辨清楚談?wù)摰膶哟魏头秶?/span>層次是相對(duì)的,。你說(shuō)地球是整個(gè)世界,,但是將地球放到銀河系中,地球就顯得渺小了,;你說(shuō)物質(zhì)世界是整個(gè)世界,,但是人類的精神世界也是無(wú)比的浩瀚;你說(shuō)物質(zhì)世界和精神世界合起來(lái)是整個(gè)世界,,但是歷史又是那么的神秘和真實(shí),;你說(shuō)物質(zhì)世界、精神世界,、歷史時(shí)空是整個(gè)世界,,但是科學(xué)家又說(shuō)人類可以探察的宇宙物質(zhì)僅占全部宇宙的百分之四。
- 使用方法:就是一個(gè)描述系統(tǒng)中實(shí)體單元的概念。
|
插件
|
Plug-in:(addin,,add-in,,add-on,addon,,app)
- A plug-in is something such as a piece of software that can be added to a computer system to give extra features or functions.
|
- 根據(jù)對(duì)組件和模塊的分析,,插件屬于組件,而且還是一個(gè)程序模塊,,也是一個(gè)功能模塊,。插件是一種電腦程序,通過(guò)和應(yīng)用程序的互動(dòng),,來(lái)替應(yīng)用程式增加一些特定的功能,。 插件必須依賴于應(yīng)用程序才能發(fā)揮自身功能,僅靠插件是無(wú)法正常運(yùn)行的,。
- 使用方法:滿足一定接口規(guī)范的具有一定功能的程序模塊,。開發(fā)者可以在自己軟件系統(tǒng)中設(shè)計(jì)相應(yīng)的接口以匹配某個(gè)插件,也可以設(shè)計(jì)一定的接口規(guī)范,,來(lái)讓別人開發(fā)插件,。插件和程序之間通過(guò)接口進(jìn)行交互。
|
控件 |
Control:
- A control is a device such as a switch or lever which you use in order to operate a machine or other piece of equipment.
|
|
中間件
|
Middleware:
- computer software that has an intermediary function between the various applications of a computer and its operating system.
- Middleware is computer software that provides services to software applications beyond those available from the operating system. It can be described as "software glue".[1] Middleware
makes it easier for software developers to perform communication and input/output, so they can focus on the specific purpose of their application.
|
- 中間件是提供系統(tǒng)軟件和應(yīng)用軟件之間連接的軟件,,以便于軟件各部件之間的溝通
|
|