邋遢居

          我的Java天堂

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            61 Posts :: 2 Stories :: 90 Comments :: 0 Trackbacks

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

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

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

          Fundation

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

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

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

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

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

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

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

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

          下面這張類圖給出了關(guān)于上面模型的全貌。

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

          posted on 2009-11-07 22:41 Jet Geng 閱讀(2049) 評論(0)  編輯  收藏 所屬分類: EclipseEMF
          主站蜘蛛池模板: 若尔盖县| 宜丰县| 荔波县| 亚东县| 洛阳市| 上高县| 都江堰市| 芜湖市| 榆中县| 湟源县| 西平县| 东台市| 富川| 嘉鱼县| 望江县| 蒲城县| 湖口县| 巴彦淖尔市| 白城市| 罗定市| 铜山县| 保山市| 兴和县| 德清县| 永兴县| 马关县| 囊谦县| 涞源县| 兴和县| 宁波市| 横峰县| 桂平市| 四会市| 贵德县| 盐津县| 宜宾市| 祁门县| 沈阳市| 聂荣县| 厦门市| 大兴区|