1. 程式人生 > >架構,框架,模式,模組、元件、外掛的含義和區別

架構,框架,模式,模組、元件、外掛的含義和區別

架構、框架、模式、模組、元件、外掛、控制元件、中介軟體的含義和區別。經常看到這些概念,但是有些含糊,花點兒功夫整理一下,結果還是有些地方理解的不透徹,先將整理的內容寫下來,以供交流。左側英文欄中有些單詞被分成了兩半,放到了兩行中,看的時候需要注意。歡迎各路大蝦、大牛、大神拍磚警醒,油錘灌頂~~~
術語 英文解釋
中文解釋
軟體架構 architecture
  • Architecture is the art of planning, designing, and constructing buildings. 
  • 軟體架構,也稱為軟體體系結構。簡單地說,軟體架構就是一個藍圖,是一種設計方案,將客戶的不同需求抽象成為抽象元件,並且能夠描述這些抽象元件之間的通訊和呼叫。它是對軟體系統的系統組織,是對構成系統的構件的介面,行為模式,協作關係等體系問題的決策總和。它不僅涉及到結構與行為,而且還涉及到系統的使用,功能,效能,適應性,重用性,可理解性,經濟性和技術約束的權衡和美學考慮。
  • 使用方法:軟體架構會分析工程中的問題,針對問題設計解決方案,針對解決方案分析應具有的功能,針對功能設計軟體系統的層次和模組及層次模組之間的邏輯互動關係,確定各個功能如何由這些邏輯實現。工程開發者,可以根據軟體架構中分析出來的層次和模組進行軟體的編寫。
軟體框架 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. 
  • 軟體框架是專案軟體開發過程中提取特定領域軟體的共性部分形成的體系結構,
    不同領域的軟體專案有著不同的框架型別。框架不是現成可用的應用系統,而是一個半成品,是一個提供了諸多服務,供開發人員進行二次開發,實現具體功能的應用系統。特別強調,框架是一個可供二次開發的程式實體。
  • 框架與架構關係 :首先說框架不是架構,框架比架構更具體,更偏重於技術,而架構偏重於設計。還有一個關係就是架構可以通過多種框架來實現。
  • 另外,生活中說的“框架”跟軟體術語中“框架”的意思不同,要注意區別。
  • 使用方法:特定領域軟體有一些共性部分形成的軟體架構,將這個共性的軟體架構開發出來,形成一個可供二次開發的程式實體,這個程式實體就是軟體框架。 可供二次開發。
設計模式 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.
  • 設計模式強調的是一個設計問題的解決方法,是一套被反覆使用、多數人知曉的、經過分類編目的、程式碼設計經驗的總結。
  • 框架與設計模式關係 :設計模式研究的是針對單一問題的設計思路和解決方法,一個模式可應用於不同的框架和被不同的程式語言所實現;而框架則是一個應用的體系結構,是一種或多種設計模式和程式碼的混合體。雖然它們有所不同,但卻共同致力於使人們的設計可以被重用,在思想上存在著統一性的特點,因而設計模式的思想可以在框架設計中進行應用。
  • 架構與設計模式關係 :兩者的關係也是很好區分的,設計模式主要是針對單一問題的解決方法,範疇比較小,而架構是高層次的針對體系結構的一種設計思路,範疇比較大。可以這麼說,一個架構中可能會出現多個設計模式來解決多個架構中的問題。
  • 使用方法:針對特定問題提供解決方案,以供問題解決者參考。
模組 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,模組是一個通用概念,可能從功能或其他目的來區分。模組可以是子系統子領域,主要取決於上下文環境的用法。通常我們會說程式模組,功能模組,這實際上是在按照不同的標準對模組的內容和範圍的不同定義。
  • 通常我們說的程式模組,是指的一段能夠實現某個有價值目標的的成員程式碼段,這樣的東西,我們還有另一個稱呼:例程,而例程有兩種,即函式和過程,它們都能實現一個有價值的目標供其它的模組使用。
  • 而功能模組的說法一般在分析和設計階段出現得比較頻繁,通常我們用一個功能模組來說明一個功能所包含的系統行為,當我們覺得分析的顆粒度可能更大一些的時候我們可以用一個功能模組來表示一組功能的集合,這似乎讓我們覺得,模組這個詞的概念和“子系統”這個詞的概念有些模糊,是的,事實上,有些大的模組會慢慢的讓我們覺得稱呼他們子系統更合適,或者一個子系統,我們會慢慢發現你還包含著一些模組。
  • 但是無論怎樣,定義模組的原則應該是:高內聚和低耦合
  • 使用方法:就是一個描述全域性中問題的概念,至於全域性是什麼,這個隨便,比如一個人,可以看成各種功能系統,那麼模組就是各種呼吸系統、消化系統等;可以看成社會關係,模組就有勞動能力、生產關係等,全在於怎麼看了。
元件 Component
  • The components of something are the parts that it is made of. 
  • 元件,Component,首先說,元件已經不是一個抽線的概念了,是封裝了一個或多個實體程式模組的實體。
  • 元件這個詞通常是現在描述產品的時候出現,一個大的產品會有很多小的部分組成,而小的部分除了是一個大的元件的部分以外,自己可能還包含更小的元件,所以元件是遞迴的,那麼元件到底是什麼呢?最常見的元件就是我們已經寫好的程式程式碼,任何一小段程式碼都可以是一個元件,它可以和其它程式碼段連線起來組成更大的一段程式程式碼,一個更大的元件,然後可能是一個函式,或者一個類程式單元,或者數個類單元檔案的整合,當不同的元件的組裝形成更大的元件時候,我們實際就是在做我們通常提到的一件事情:整合,軟體中有很多整合工作要做,每日整合,重要版本整合等等,整合是什麼呢?軟體中,就是鏈編除錯。這樣一來,我們知道整合是需要對被整合的元件有規模要求的,換句話說,至少是一個單元檔案,所以通常說到的元件就可以直觀的理解為單元檔案,或者可以組成軟體的其他檔案,以及編譯後的檔案。
  • 元件是面向物件裡面的一個重[chóng]用的概念,也稱為構件,元件非常類似機械中構件概念,現在機械都是走向構件生成,通過不同構件組裝成一個機械成品,軟體目前也是這樣的一個生成方式。
  • 維基百科上說,元件之間通過介面進行互動,這個挺起來有些象外掛,現實中也是這樣,比如一個dll檔案,可以說是外掛,也可以說是元件。外掛是是元件的一個子類,就是將元件中具有某些特點的元件歸為外掛,這些特點是:益於與系統分離,介面明晰,可以替換的程式模組。
  • 元件強調的是封裝,利用介面進行互動。因為封裝有不同層次的封裝,對應不同層次的介面,(比如將一個人封裝成一個元件,比如國家主席,多個人封裝成一個組合,比如中央的常委們),所以元件所表述的範圍和層次也是多種多樣的,在談論元件的時候一定要分辨清楚談論的層次和範圍。層次是相對的。你說地球是整個世界,但是將地球放到銀河系中,地球就顯得渺小了;你說物質世界是整個世界,但是人類的精神世界也是無比的浩瀚;你說物質世界和精神世界合起來是整個世界,但是歷史又是那麼的神祕和真實;你說物質世界、精神世界、歷史時空是整個世界,但是科學家又說人類可以探察的宇宙物質僅佔全部宇宙的百分之四。
  • 使用方法:就是一個描述系統中實體單元的概念。
外掛 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.
  • 根據對元件和模組的分析,外掛屬於元件,而且還是一個程式模組,也是一個功能模組。外掛是一種電腦程式,通過和應用程式的互動,來替應用程式增加一些特定的功能。 外掛必須依賴於應用程式才能發揮自身功能,僅靠外掛是無法正常執行的。
  • 使用方法:滿足一定介面規範的具有一定功能的程式模組。開發者可以在自己軟體系統中設計相應的介面以匹配某個外掛,也可以設計一定的介面規範,來讓別人開發外掛。外掛和程式之間通過介面進行互動。
控制元件 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.
  • 中介軟體是提供系統軟體和應用軟體之間連線的軟體,以便於軟體各部件之間的溝通。