分享
 
 
 

企业应用开发架构谈(一)

王朝java/jsp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

企业应用开发架构谈(一)

即便是在有了企业级软件平台的今天,我也常常发觉开发企业级应

用程序是个难题。无论是.net还是J2EE仅仅使用他们所提供的高级

抽象API来开发企业级应用是远远不够的。在我看来一个构建在这些

高级API上的良好的体系结构是开发成功的企业级应用所不可或缺的。

本文要谈论的就是如何构建一个良好的、可维护的、可扩展、高稳

定性的且能够快速开发应用的开发架构。

在我接触.NET 或J2EE 开发过程中,走了大量的弯路,使得开发的程

序不是性能不好,就是无法满足目标和要求,相信同样的错误今天仍

然在不断的重复出现,这就要求我们吸取教训,减少创造无用的程序。

尽管有了高级的抽象API,但构架系统不光是使用API那么简单,从更高层

的抽象来说,通过使用构件策略和模式来创建构架体系,是解决开发中遇

到的一系列问题的关键。

如:

会话如何跟踪?

谁来负责数据检验?

层键的数据如何传送?

视图、模型、控制?

如何分发视图?

等等。。。。。。。。。。。。

在这篇文章中我不采用实例的方式来讲解。因为我发现,尽管通过实

例有很多的优点,但往往读者无法坚持完成整个例子,同时限于本文

的篇幅,采用实例法也是不可取得。

我将在文章中讨论在开发企业架构中我所遇到的一系列问题:

视图--模型--实体

资源定位

资源的可配置

持久化

出版---订阅

数据校验

主键生成

数据更新

数据传送

动态赋值

控制-分发

对象界面

代理

在谈到我将要讨论的问题前,我希望你先要了解什么是模式,我不打算在

有限的篇幅中讨论模式,这是一个很广的问题。但必须首先声明的得是,

你阅读本文对模式的了解是基本要求,企业开发中模式将被大量使用,我

相信一个优雅,成功的系统模式的使用是不可少的。

关于模式的更多信息你可以参考 GOF 96 、SUNJ2EE DESIGNPATTERNS

CORE、J2EE DESIGNPATTERNS 等文章。

第一部分 资源定位

一个有序的世界总是好的。

小时候玩玻璃球和三角,开始的时候总是将嬴来玻璃球放到一个盒子中,渐渐

的越来越多,于是我将他们分类,有瑕疵的放到一起,普通的放到一起,高级

的(可以一个换两到三个)放到一起,同样的三角也是如此存放,这样一来我

能够很容易的决定每次带什么样的出去玩。

开发架构的时候我碰到同样的问题,譬如大量的值对象、命令bean、视图helper

散落在各处,有序的管理他们势必成为优先要解决的问题。试想如果有一种目录

结构来管理这些类该有多好。

我是一个工厂的狂热爱好者,我总是通过工厂来管理这些无序的资源,以便于通

过目录的方式定位资源,不可避免的造成了系统中出现越来越多的工厂,我把管

理这些工厂称为工厂定位器模式。

为了清晰的描述我的想法,我喜欢通过代码来说明,这用的问题简单明了。

代码如下:

/*工厂定位器*/

public interface FactoryFinder{

public final static int ACTION_MAPPING_FACTORY=1;

public final static int MESSAGE_RESOURCES_FACTORY=2;

public final static int VALUE_OBJECT_FACTORY=3;

public final static int FORWARD_MAPPING_FACTORY=4;

public final static int LIFE_CYCLE_FACTORY=5;

public static Factory getFactory(int finderName);

}

/*工厂标志接口*/

public interface Factory {

}

/*生命周期管理器*/

public interface LifecycleFactory{

public final static int DEFAULT_LIFE_CYCLE=1;

public Lifecycle getLifecycle(String Key);

}

/*消息注册工厂*/

public interface MessageResourcesFactory extends Factory{

public addMsgResource(String Key ,String resourceName);

}

/*

/*监听器注册工厂*/

public interface ActionMappingFactory extends Factory{

public addActionMapping(String Key,String resourceName);

}

/*值对象注册工厂*/

public interface BeanMappingFactory extends Factory{

public addBeanMapping(String Key,String resourceName);

}

/*分发视图注册工厂*/

public interface FowardMappingFactory extends Factory{

public addForwardMapping(String Key,String resourceName);

}

/*监听器工厂*/

public interface ListenerFactory extends Factory{

public final static int ACTION_LISTENER=1;

public final static int VALUE_CHANGED_LISTENER=2;

public final static int HERPLINK_LISTENER=3;

public Listener createListener(String listenerName,int type);

}

/*bean 工厂*/

public interface BeanFactory extends Factory{

public Object createBean(String beanName);

}

/*Lifecycle 工厂*/

public interface Lifecycle extends Factory{

public void register();

}

如你所看到那样工厂定位器模式其实就是一个工厂模式,但我重新将它命名

为工厂定位器模式,这是因为,它不简简单单作为一个设计模式而存在,在

这里它被赋予新的含义“有效管理架构中资源的一种策略“。通过它的有效组

织资源,你可以方便的定位架构中任何可用资源。

同样的定位方式,我们可以用来组织服务定位,譬如:查找ejb,数据连接等。

服务定位器模式就是定位的另一个应用:

代码如下:

/*

实现主键获取、数据连接获取、home接口获取

*/

public interface ServiceLocator{

public static ServiceLocator getInstance();

public EJBHome getEJBHome(String serverID,String homeName);

public Connection getConnection();

public BigDecimal getNextID(String systemCode);

}

通过服务定位 ,可以有效的减少服务成本,提高系统的性能。

正如上面所说的,在一个体系中定位资源是重要,这是组织整个架构的基础,

无论什么样的事件都是由个体组成,而有序的安排个体总是有序世界的第一

步。

在这一部分里,简要的谈了资源定位问题,下一部分将讨论资源的可配置问题。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有