學習Shark的一些理解 (選擇自 smilingleo 的 Blog)

1、關於其API的存放路徑問題,爲什麼不是在一個整體的src目錄下,而是分了很多單獨的目錄

現在看是,爲了將這些數量巨大的API分門別類的存放,以指示使用者在何種場合使用哪一部分API,比如api目錄中爲用戶提供可編程的interface,corba中提供corba相關的服務。

2、關於Shark中Adapter模式的頻繁使用問題

在Shark的設計思想中,我理解是基於一個Meta-Data Framework的框架,就是概念模型,而在實現的時候有一些與概念模型不完全相同的東西,所以作者就分別寫了概念模型,與實現模型,然後用Adapter模式將這兩個部分粘合起來,這就是在Shark模型中充斥着大量的XxxxImpl類,XxxxWraper類的原因。(具體內容請參見我的另外一個文章Shark的概念模型與實現模型)

3、如何使用API的方式來調用Shark引擎

首先需要將Shark的lib下所有jar都引入到本project的Classpath中(好像原包中缺少hibernate包,可以下載對應的),
然後在modules目錄中進行搜索src,這樣就可以將每一個單獨目錄中的源文件合在一起,拷貝所有搜索結果到一個目錄src,引入到jb或eclipse中,編譯,就可以比較方便的看到Shark的源碼了。
主要使用org.enhydra.shark.api.client包。
①:Shark.configure(),一般需要指定其shark.conf的位置,該文件主要爲SharkEngineManager的提供各種管理器的配置,你可以擴展shark的框架,用自己的Manager類來實現特殊的功能,完成後寫在shark.conf配置文件中。
②:Shark.getInstance(),返回一個SharkInterface的實例
此後,你需要決定是獲得一個與Shark服務器的連接執行分配的任務(需要服務器運行),還是獲得一個AdminInterface來管理用戶、組、Package(不需要服務器運行)。
比如,查看一個用戶有幾個代辦項目的實現代碼:
  Shark.configure("Shark.conf");
  SharkInterface si = Shark.getInstance();
  SharkConnection sc = si.getSharkConnection();
  try {
     sc.connect("leo", "l", "Shark", "");
     System.out.println("你有" + sc.getResourceObject().how_many_work_item() + "個任務");
  } catch (Exception e) {
     e.printStackTrace();
  }
發佈了10 篇原創文章 · 獲贊 0 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章