Shao Fan

          關于JAVA與軟件工程
          posts - 31, comments - 71, trackbacks - 0, articles - 4
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          2007年6月5日

          目前開發(fā)人員對系統開發(fā)的一個共識是使用三層架構,分為表示層,業(yè)務層,和持久層。而這三層之間的依賴關系如何?比較常見的一種看法是

          表示層 --> 業(yè)務層 --> 持久層

          這表明了層與層之間的調用關系,表示層通過調用業(yè)務層來完成任務,而業(yè)務層則調用持久層。從另一個角度來看,一種依賴關系是

          表示層 --> 領域模型(Domain Model) <-- 持久層

          表示層和持久層都應該理解(recognize)領域模型。而領域模型則是業(yè)務層的一部分。業(yè)務層正是系統的價值所在。雖說表示和持久也很重要,在某些系統中可以說是很關鍵,但是它們的最終目的都是為業(yè)務服務,所以業(yè)務層應該是系統的核心

          基于以上的認識,在系統設計的時應首先分析需求得到領域模型,找出系統中的實體、對象(靜態(tài)的一面),并明確大致的業(yè)務流程(動態(tài)的一面)。 而另兩層應盡最大努力為業(yè)務層服務,且盡量減少業(yè)務層受另兩層的限制。


          各層的職責:

          表示層:負責顯示信息,及從系統外部得到輸入。表示層的設計決定系統界面的可用性,及信息輸入和展示的可靠性。表示層只知道如何展示信息,及收集用戶輸入,并不知道該如何對這些輸入進行處理來完成業(yè)務。

          業(yè)務層:完成業(yè)務邏輯。業(yè)務層設計決定客戶價值是否能夠得到實現。這是系統的關鍵。外在的表現是功能性。業(yè)務層設計和實現的失誤表現在用戶端即功能缺失,功能不可靠等。如果需要對業(yè)務層的業(yè)務規(guī)則進行解耦,則可以使用規(guī)則引擎如Drools,把業(yè)務規(guī)則分離出來。但分離后的業(yè)務規(guī)則仍屬于業(yè)務層。業(yè)務層知道如何對用戶輸入進行處理,能夠應用業(yè)務規(guī)則完成用戶所需的業(yè)務,但它不知道數據如何讀取和保存。

          持久層:負責用戶信息的持久化。持久層的失誤表現在外即數據處理(儲存,展示等)不可靠。持久層完全不知道業(yè)務,只專注于數據存儲和讀取。所謂持久化并不一定是指數據庫,任何方式的持久化(通過文件,網絡的持久化等)都應由持久層完成。

          各層的設計都會直接影響系統性能。

          三層的體積大小和復雜度在不同的系統中可能會有很大的不同。比如說GOOGLE的搜索引擎,它的界面很簡單,可以想像表示層是比較容易實現的,而它的業(yè)務層,關系到處理關鍵字,分析搜索結果,決定排名等,而持久層則要負責處理超大量的數據。業(yè)務層和持久層則相當復雜。而有的系統持久層會很小,比如殺毒軟件,媒體播放軟件等。業(yè)務層小而另兩層大的例子暫時還沒有想到:)


          posted @ 2007-09-08 19:45 shaofan 閱讀(5133) | 評論 (2)編輯 收藏

          help是一個內置函數,所謂內置函數,就是在Python中被自動加載的函數,任何時候都可以用。參數分兩種:

          • 如果傳一個字符串做參數的話,它會自動搜索以這個字符串命名的模塊,方法,等。
          • 如果傳入的是一個對象,就會顯示這個對象的類型的幫助。

          比如輸入help(’print’),它就會尋找以’print’為名的模塊,類,等,找不到就會看到提示信息。而print在python里是一個保留字,和pass,return同等,而非對象,所以help(print)也會出錯((kkkkkkk))。

          舉個例子:

          1 help(’sys’) #會列出sys模塊的幫助
          2 = [1,2,3]
          3 help(a) #會顯示list的幫助
          4 help(a.append) #會顯示list的append方法的幫助

          python安裝自帶的library reference,2.1節(jié)是關于內置函數的。

          Reference Manual的6.6節(jié)可以找到關于print的東東。

          posted @ 2007-06-05 06:28 shaofan 閱讀(2770) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 溆浦县| 石河子市| 宜昌市| 庆阳市| 隆安县| 大理市| 洪雅县| 商洛市| 金阳县| 琼海市| 株洲市| 宁阳县| 庆安县| 乌兰县| 江陵县| 杂多县| 宁乡县| 哈巴河县| 新兴县| 五常市| 儋州市| 乌鲁木齐县| 陇川县| 大城县| 中牟县| 筠连县| 巴青县| 台东市| 武清区| 淳安县| 祁连县| 金平| 大名县| 柏乡县| 邮箱| 南充市| 霍山县| 抚顺市| 威信县| 韶关市| 四平市|