邋遢居

          我的Java天堂

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            61 Posts :: 2 Stories :: 90 Comments :: 0 Trackbacks

          在我們創建領域模型前,我們有必要了解一下我們的模型用來表達什么內容。 所以我就先解釋一下在這個系列文章中要實現應用。 假設Eclipse組織邀請你編寫一個讓他們管理貢獻者和項目的應用程序。

          我們需要創建一個模型來表達客戶提供的信息。他們有可能如下圖。

          讓我們進一步的看看這個模型。

          Fundation

          fundation是這個模型的根,他擁有兩個列表屬性。

          projects: 像EMF,Techonlogy,Platform這樣的頂級項目。
          persons: 參加一個或多個項目的人。
          Project

          Eclipse項目擁有很多屬性,比如項目開始和結束時間、項目的主頁的url等等。下面列出我們最感興趣的。

          subprojects: 一個項目可以擁有多個子項目。子項目本身也可以擁有多個子項目。
          parent: 項目有一個父親(除了頂級項目外)。這就意味著項目和子項目(project-subproject)的關系是一個雙向的關系。
          projectleads 一個項目有多個項目領導人。
          committers 一個項目可以擁有多個貢獻者。
          CommitterShip

          當一個用戶成為一個項目的貢獻者(Committer)時,這就建立了一個committership。他擁有一個開始時間和結束時間。另外我們還要記錄下下面的屬性。

          project: 和committership相關的項目。項目和committership是一個雙向的關系。
          person: 參加項目的人。
          Person

          貢獻者或項目領導人的信息。我們關系的信息如下:

          committerships: 用于保存和人相關的所有的committerships.這說明人和committership是一個雙向關系。

          下面這張類圖給出了關于上面模型的全貌。

          正如你所看到的,我把許多關系設成了雙向關系。 As you noticed I modeled many of the relations as bidirectional relations. 這個并不是嚴格要求所有地方都要這樣,因為有的地方可以通過eComtainer來獲取他的父親。就像project-subproject一樣。 但是包含關系(containment relationship)在使用databinding的情況下就不太合適了。因為從子到父親時沒有對應feature,只能通過調用eContainer()方法來獲得。 EMF提供了一個編輯器來創建你的Ecore-Model并把它保存成XMI格式。我們可以用它來創建測試數據。下圖就是一個例子。

          posted on 2009-11-07 22:41 Jet Geng 閱讀(2050) 評論(0)  編輯  收藏 所屬分類: EclipseEMF
          主站蜘蛛池模板: 毕节市| 河东区| 桐庐县| 阳泉市| 射阳县| 平遥县| 虞城县| 垦利县| 涿鹿县| 清原| 英山县| 青浦区| 武清区| 沅江市| 顺平县| 金秀| 建阳市| 八宿县| 台州市| 耿马| 杨浦区| 宜州市| 鹤庆县| 教育| 永康市| 闽清县| 商城县| 安阳县| 开江县| 马山县| 蒙自县| 汕尾市| 武冈市| 姜堰市| 巢湖市| 临洮县| 泸定县| 岱山县| 孝义市| 乐业县| 鄱阳县|