<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    飛艷小屋

    程序--人生--哲學___________________歡迎艷兒的加入

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      52 Posts :: 175 Stories :: 107 Comments :: 0 Trackbacks

    架構(Architecture)和框架(Framework)雜談

    經常感覺很多人對于架構和框架分得不是很清楚,隨便寫一點關于這方面的東西吧。如果以后對于這方面的認識更加深刻的話,再補充好了。

    1. 架構和框架的設計層次不同

    類似于硬件設計,軟件設計也分為不同的層次。典型的軟件設計層次如下圖:

    design-level.BMP

    在這個圖中我們可以看到,Framework處于Micro-architectures和Application Level之間。Deisgn Patterns是Micro-architectures級的設計,Framework由多個Design Pattern和其他微架構設計元素形成。而Object&classes、Micro-architectures和Framework被稱為 Micro Level設計。就是說,從Objects&classes到Framework,還沒有發生質變。

    對于Application Level到Global/Industry Level的設計來說,就都是Architecture的范疇了。從Application Level來說,它是由零到多個Framework組成的獨立的應用程序,會考慮諸如UI之類的重要問題。System Level由多個應用組成,每個應用在整個系統中代表不同的角色,這些應用共同組成一個系統工作環境。Enterprise Level又是由System Level組成,通常跨越整個企業(這里是廣義的企業)中的多個組織機構。Global/industry Level由多個企業通過Internet和商業市場組成一個相當大范圍內的系統應用,B2B就是這樣的Global Level設計的應用系統。

    顯然Framework和Architecture在這里的差別是巨大的,哪怕和Application Level相比。當一個應用中只使用了一個Framework時,我們可以把它叫做Architecture嗎?事實上,Framework僅僅是 Architecture中的一個微不足道的部分。在Achitecture中,我們考慮技術視圖時,會選擇J2EE或.NET,然后才會考慮:是否要用 Spring、Hibernate?從這里可以看出,Framework只是技術視圖的一個設計決策。

    2. 架構和框架的Design Forces不同

    其實,僅僅上面的描述也應該能夠讓大家清楚的認識到Architecture和Framework的區別了。但我還想在另外的方面更進一步說明。

    Design Forces我不知道怎么翻譯,只能解釋一下了:Design Forces指設計主要針對的問題、領域和能力。勉強可以翻譯成“設計針對”吧。

    Framework的Design Forces主要是功能性、復雜性和性能。從Framework的定位和設計層次來說,它主要目的是幫助開發人員完成公共的、系統的功能,這些功能在大多數應用中都需要,差別在于多少而已。對于一個Framework,完成系統的功能,隱藏并盡量簡化這些系統功能的復雜性,同時提供可接受的性能,這就是它的設計目標了。

    而對于Architecture,其最主要的Design Force就是變更。其次,所有可能的問題都是要在Architecture中考慮:復雜性、功能、性能、技術、所有非功能需要等等。。。

    3. OOP、AOP還是FOP(Framework oriented Programming)?!

    做Java有一個好處,就是各種框架技術層出不窮,使用方便。但這不見得就是好事情。感覺很多人非常專注于框架的使用和研究,對框架注意力甚至超過了對OO、Java、J2EE規范等基本的東西的注意力。倒是有些象當初Windows下面,用VB、VC、Delphi,還是 CBuilder?似乎有些人把OOP、AOP變成了FOP。

    在我看來,框架這個東西,用用是可以的,研究就不必了;自己寫個框架也是可以的,但也不應該停留在框架這個層次。不要在框架上浪費精力,把這個事情交給畢業生做好了。

    4. 慎用Framework!

    小標題夸張一點,是為了提醒大家。一般情況下,使用Framework可以大大減少工作量,使開發變得容易。通常使用框架應該是值得鼓勵的。但是也要注意:

      • 不要濫用Framework。不要在一個不是很大的項目中使用過多的Framework,不然維護會受到影響。
      • 盡量不要同時使用幾個功能上有交叉的Framework。這會使項目開發的管理更加復雜,同樣會導致維護問題。
      • 在Enterprise Level的應用中使用Framework時,要對Framework進行嚴格的評估,確保其Design Forces不和Enterprise Level的應用沖突!Framework在設計時刻通常不會考慮到Enterprise Level的問題,你不能想當然的認為它一定可以適合你的Enterprise應用!

      先寫這么多,以后再補充吧。

      posted on 2005-11-22 08:53 天外飛仙 閱讀(168) 評論(0)  編輯  收藏

      只有注冊用戶登錄后才能發表評論。


      網站導航:
       
      主站蜘蛛池模板: 亚洲精品第五页中文字幕| 精品国产日韩亚洲一区在线| 无码人妻一区二区三区免费| 久久精品亚洲日本波多野结衣| 久久综合亚洲色HEZYO国产| 久久国产免费一区二区三区| 亚洲午夜无码久久久久软件 | 大学生高清一级毛片免费| 又粗又长又爽又长黄免费视频| 亚洲日韩区在线电影| 在线观看免费精品国产| 光棍天堂免费手机观看在线观看| 国产成人亚洲精品| 亚洲日韩精品无码专区网址| 好男人www免费高清视频在线 | 好吊妞在线成人免费| 野花香高清在线观看视频播放免费| 亚洲乱码av中文一区二区| 亚洲αv在线精品糸列| 四虎永久免费地址在线观看| 91麻豆国产免费观看| 亚美影视免费在线观看| 亚洲色大成网站www尤物| 亚洲成a人片在线观看日本| 免费国产美女爽到喷出水来视频| 999任你躁在线精品免费不卡| 日本一区二区三区免费高清在线| 亚洲国产精品成人综合色在线婷婷 | 欧美在线看片A免费观看| 黄色网址在线免费| 污污污视频在线免费观看| 色天使亚洲综合在线观看| 自怕偷自怕亚洲精品| 亚洲综合AV在线在线播放| 又大又粗又爽a级毛片免费看| 国产一卡2卡3卡4卡无卡免费视频 国产一卡二卡3卡四卡免费 | 精品日韩亚洲AV无码| 亚洲人成影院在线无码按摩店| 日本不卡视频免费| 我要看免费的毛片| 麻豆一区二区免费播放网站|