麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發(fā)設計 > 正文

抽象PACKAGES增加系統靈活性

2019-11-18 13:27:15
字體:
來源:轉載
供稿:網友

  為了確保package關聯的靈活性,java程序員在開發(fā)過程中都傾向于package的抽象部分的關聯而盡可能地避免具體部分的關聯。這樣的好處是我們可以最大程度地減小系統中更改所帶來的影響,從而獲得系統的高度完整性。這一節(jié)我們將講述一些啟發(fā)式知識,這些知識確保系統中package關聯更加靈活,達到增加系統的可擴展性和可維護性的目的。
  
  Package更改是必然
   
  關聯緊密的package會減小系統的可靠性,因為package中內容的任一改變都會影響到整個系統。相反,假如package關聯很少,則其內容的改變不會殃及其它部分。
  
  大部分的web程序都需要一個日志機制以答應程序能夠追蹤錯誤信息并有助于調試。其實,日志機制是一個定制好的package成分,如Apache中的Log4j。無論這些機制是否運行,與日志機制必然有一個關聯,這樣就潛伏地存在系統不可靠的危機。
  
  因為系統中有很多packages與日志機制有關聯,所以必須最大程度地減小日志機制內容的更改。雖然我們不能使用外部的日志機制方式,但我們可以采用其它方法來減小系統的更改對日志機制的影響。最通用的方法是使用正面(facage)模式,這一方法在程序執(zhí)行過程中可以把改變部分和其他部分隔絕。圖A顯示了在logfacade中的一個LoggingFacade LoggingFacade類。
  
  Figure A
   抽象PACKAGES增加系統靈活性(圖一)
  The LoggingFacade class
  正面方式可以把更改部分隔絕開,與日志機制有關聯的部分都通過logfacade運行。日志機制內容可以改變或更新,但這些都被屏蔽起來,程序的其他部分不會遭受影響。
  
  從日志機制這一角度而言,LoggingFacade類支持以下的啟發(fā)式知識。
  
  更改最小的package將受到最大的關聯
  更改最大的package將受到最小的關聯
  然而,這一logfacade包還是不太穩(wěn)定,它會隨時破壞整個系統,因為logfacade包在整個系統都要運行。我們必須找到新的一個日志機制方法,抽象package正是這一問題的答案。
  抽象package集中于成員特性
   
  抽象是面向對象程序設計中的一個基本定律。抽象有點難于理解,因為它涉及到過程及過程的結果。當執(zhí)行一個抽象的過程時,應該集中于成員的重要特性。設計packages時要重視抽象的功能,其中一個好處是,能夠在執(zhí)行過程中把一個package獨立開來,即把聲明和執(zhí)行隔離開。
  
  在面向對象中,繼續(xù)和多態(tài)經常被用于把聲明從執(zhí)行隔離開來。在定義一個抽象類時,我們可以從其他抽象類繼續(xù)一個類并提供一個相應的執(zhí)行。下面的啟發(fā)式知識把這一概念應用到package:具有關聯的package應盡可能的抽象化。
  抽象的package包含抽象類和界面。因為package一般都是相互關聯,你應該確保這些關聯發(fā)生在抽象的成分,而不是具體的成分。抽象成分的關聯有助于系統的擴展。
  
  在我們上面討論的日志機制例子中,logfacade包的引入減小了日志改變所帶來的危機。然而,這一危機只是轉移到LoggingFacade類中,并沒有徹底的消除。為了更進一步地減小這一危機,我們在logfacade包引入一個LoggerInterface,這一LoggerInterface執(zhí)行LoggerInterface。如圖B說明了LoggerInterface不僅擴展了圖A中的設計,而且可以讓我們理解新的日志機制。
  
  Figure B
  抽象PACKAGES增加系統靈活性(圖二)
  The new LoggerInterface class
  Package設計中應注重的要害事項
  下面列出了設計高靈活的packages應注重的要害問題
  
  生成對象——為了限制packages之間的關聯,可以使用“對象工廠”來生成包含內部packages的具體的類,這些“工廠”返回界面數據類型的參數。
  抽象的packages——因為抽象packages能夠提供一個與其他packages關聯的聲明,沒有和其他packages關聯的抽象packages實質上是無用的。
  抽象程度——我們不可能生成全部包含所有的抽象或界面類。相反,packages一般都抽象類和具體類的混合。在這種情況下,我們應該確信我們只與package的抽象部分關聯。
  
  --------------------------------------------------------------------------------
  
  深入學習Java
  請閱讀ZDNet China 的Java文章列表,以深入學習Java。
  
  開始動手設計
  在前面的一節(jié)里,我們討論了設計package關聯的重要性及它們對系統穩(wěn)定性的影響。這一節(jié)我們集中討論于抽象packages,這些抽象packages能減小關聯,有助于提高靈活的package關聯。這些啟發(fā)式知識將幫助你設計可擴展的,易維護的系統。
  
  本文相關連接請點這里

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 亚洲成人入口 | 精品亚洲夜色av98在线观看 | 毛片在线不卡 | 亚洲va久久久噜噜噜久牛牛影视 | av国产免费 | 久久思思爱 | 日韩视频在线观看免费视频 | 欧美黄色小视频 | 国语自产免费精品视频在 | 久久精品国产99久久久古代 | 牛牛热这里只有精品 | 国产成人精品免费视频大全办公室 | 他也色在线视频 | 欧美日韩在线播放 | 男男羞羞视频网站国产 | 在线观看视频毛片 | 国产精品免费一区二区 | 日韩黄色影视 | 一区二区三区欧美在线 | 青热久思思 | 亚洲精品久久久久久久久久久 | 成年人网站视频免费 | 黄色片网站在线播放 | 蜜桃网站在线 | 国产成人在线网址 | 九九色网站 | 亚洲欧美日韩免费 | 国产精品视频免费在线观看 | 一区二区三区四区高清视频 | 久久99久久99免费视频 | 久久羞羞 | 久久精品视频网站 | 另类亚洲孕妇分娩网址 | 欧美1| 一级免费| 成人午夜视频免费在线观看 | 99re久久最新地址获取 | 九一免费版在线观看 | 日韩一级毛毛片 | 天天艹综合| 欧美成人高清视频 |