(一)设计背景
资源或者数据,其原始形式往往是比较混乱、纷杂的,所以,IT系统的建设,基础行为往往体现为先把资源或数据进行结构化,能够用某种对象模型来表示,然后才方便进行处理。不过,这种对象模型的提取,往往和业务的应用目的紧密联系在一起,不能够剥离出来,往往需要随着应用系统的建设,一遍一遍地来重复构建针对某种资源或数据的分析剥离程序。
例如,一个WEB应用里部,多个模块的代码,就是这样一个例子,从逻辑上来说,应用分解成多个模块,每个模块具备逻辑上的独立性,但在代码视图里,各模块代码互相调用,有些代码混合在某公共文件中,例如,web.xml里面,往往会混杂多个模块的配置。这样,就形成了一种模块间很紧的耦合,一个模块的变动,尤其是系统上线后期的维护,技术人员需要很仔细地考证代码间的耦合,必须非常小心地进行回归测试,这带来复杂的问题和较高的成本。
本设计试图通过建立一种通用的模型描述机制,形成一个简单的数据结构,来通用地描述资源或数据的结构形态,一般地,体现为一种组件关系的描述,并透明处理结构模型和原始数据间的同步。这样,可以有效解决上述混杂问题。
(二)核心概念
-
对象:资源或数据;
-
属性:资源或数据相关的属性;
-
管理器:对象集合,以及对对象的管理。
(三)接口一:对象
//通用对象
public interface XObject {
//返回对象标识
String getId() throws Exception;
//返回对象名字
String getName() throws Exception;
//判断属性是否存在
boolean existsProperty(String name) throws Exception;
//取得属性
XProperty getProperty(String name) throws Exception;
//返回属性列表
List<XProperty> getPropertyList() throws Exception;
//增加属性
boolean addProperty(XProperty property) throws Exception;
//删除属性
boolean removeProperty(String name) throws Exception;
//清除所有属性
void clearProperties() throws Exception;
//创建一个属性
XProperty createProperty(String name) throws Exception;
}