EMF介绍
- 为了理解EMF究竟是什么,你只需要知道一件事:“模型”(model)是什么?“模型”的目的是什么?
- EMF不要求全新的方法论亦或是任何复杂的建模工具。只需要从Eclipse的Java开发工具着手开始。
- EMF将建模概念直接与其实现相关联,所以上手比较容易。
统一Java、XML和UML
举个编程实例,假设老板让你编写一个程序来管理供应商的采购清单。采购清单包含付款对象(bill to)和送货对象(ship to)的地址,以及货物的集合。其中,货物信息包含名称、数量、价格。
//采购清单
public intrerface PurchaseOrder
{
//送货对象
String getShipTo();
void setShipTo(String value);
//付款对象
String getBillTo();
void SetBillTo(String value);
//货物的集合
List getItems();
}
//货物信息
public intrerface Item
{
//货物名称
String getProductName();
void setProductName(String value);
//货物数量
int getQuantity();
void setQuantity(int value);
//货物价格
float getPrice();
void setPrice(float value);
}
从上面的接口着手,你将需要开始编写应用程序的UI以及之后一系列工作。
然而,这时候你的老板问你:“你不先建立模型吗?”尽管你觉得有点多此一举,但还是按吩咐建立了UML模型。
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:po="http://www.example.com/SimplePO"
targetNamespace="http://www.example.com/SimplePO">
<xsd:complexType name="PurchaseOrder">
<xsd:sequence>
<xsd:element name="shipTo" type="xsd:string"/>
<xsd:element name="billTo" type="xsd:string"/>
<xsd:element name="items" type="po:Item"
minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name-"Item">
<xsd:sequence>
<