在我们创建领域模型前,我们有必要了解一下我们的模型用来表达什么内容。 所以我就先解释一下在这个系列文章中要实现应用。 假设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格式。我们可以用它来创建测试数据。下图就是一个例子。
分享到:
相关推荐
eclipse-jee-galileo-SR1-win32.part08.rar
eclipse-jee-galileo-SR1-win32.part02.rar
由于这个分包太多,我没有上传完。大家务必不要从我这里下载了,直接给大家一个eclipse官方link:...
eclipse-jee-galileo-SR1-win32.part05.rar
eclipse-jee-galileo-SR1-win32.part04.rar
eclipse-jee-galileo-SR1-win32.part06.rar
eclipse-jee-galileo-SR1-win32.part03.rar
eclipse-jee-galileo-SR1-win32.part07.rar
标题中的"eclipse-cpp-galileo-SR2-linux-gtk.tar.gz"是一个针对Linux系统的Eclipse CDT Galileo Service Release 2(SR2)的压缩包文件,采用GTK图形库,这使得它能够在基于GTK的Linux桌面环境下运行。 Eclipse ...
【标题】"eclipse-java-galileo-SR2-linux-gtk.tar" 提供的信息表明,这是一个针对Linux平台的Eclipse集成开发环境(IDE)的版本,具体为Galileo Service Release 2(SR2)。Eclipse是一款开源的、跨平台的开发工具...
《软件定义的GPS和Galileo接收器——单频方法》 本书主要探讨的是现代卫星导航系统中的一个重要技术领域,即软件定义的GPS和Galileo接收器的实现,特别是采用单频方法。软件定义无线电(Software-Defined Radio, ...
【标题】"eclipse-java-galileo-SR2-win32" 指的是Eclipse IDE的一个特定版本,专门针对Java开发,适用于Windows 32位操作系统。"Galileo"是Eclipse的一个重大版本,而"SR2"代表Service Release 2,即该版本的第二个...
标题中的"PyPI 官网下载 | galileo-ssi-1.2.tar.gz"表明这是一个在Python Package Index(PyPI)上发布的软件包,名为"galileo-ssi",版本为1.2,且文件格式为tar.gz。PyPI是Python开发者发布自己软件包的官方平台,...
这个是开发android的eclipse开发工具,我们可以用把android的sdk,ADT集成进去。 eclipse-java-galileo-win32-part1
Eclipse32位3.5.1伽利略版eclipse-jee-galileo-SR1-win32.zip支持jdk1.5 Eclipse 支持jdk1.5 32位 galileo 伽利略版 eclipse-jee-galileo-SR1-win32.zip 更多eclipse版本可看查看我的系列,欢迎下载~
标题中的“Python库 | galileo-jupyter-0.0.1.dev4.tar.gz”表明这是一个与Python相关的库,特别地,它是为Jupyter环境设计的。这个库的版本是0.0.1.dev4,表明它可能仍处于开发阶段。通常,.tar.gz是一个源代码...
这个是开发android的eclipse开发工具,我们可以用把android的sdk,ADT集成进去。 eclipse-java-galileo-win32-part0
Eclipse32位3.5.2伽利略版eclipse-jee-galileo-SR2-win32.zip支持jdk1.5 Eclipse 支持jdk1.5 32位 galileo 伽利略版 eclipse-jee-galileo-SR2-win32.zip 更多eclipse版本可看查看我的系列,欢迎下载~
这个是开发android的eclipse开发工具,我们可以用把android的sdk,ADT集成进去。 eclipse-java-galileo-win32-part2[第三个]