[转]企业应用开发架构谈(一)(深度|从一个故事说起,谈谈企业应用架构的演变史)

fangcloud 472 2022-06-04

本文转载自网络公开信息

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

即便是在有了企业级软件的今天,我也常常发觉开发企业级应 用程序是个难题。无论是.net还是仅仅使用他们所提供的高级 抽象API来开发企业级应用是远远不够的。在我看来一个构建在这些 高级API上的良好的体系结构是开发成功的企业级应用所不可或缺的。 本文要谈论的就是如何构建一个良好的、可维护的、可扩展、高稳 定性的且能够快速开发应用的开发架构。  在我接触 或J2EE 开发过程中,走了大量的弯路,使得开发的程 序不是性能不好,就是无法满足目标和要求,相信同样的错误今天仍 然在不断的重复出现,这就要求我们吸取教训,减少创造无用的程序。  尽管有了高级的抽象API,但构架系统不光是使用API那么简单,从更高层 的抽象来说,通过使用构件策略和模式来创建构架体系,是解决开发中遇 到的一系列问题的关键。  如: 会话如何跟踪?  谁来负责数据检验?  层键的数据如何传送?  视图、模型、控制? 如何分发视图?  等等。。。。。。。。。。。。  在这篇文章中我不采用实例的方式来讲解。因为我发现,尽管通过实 例有很多的优点,但往往读者无法坚持完成整个例子,同时限于本文 的篇幅,采用实例法也是不可取得。  我将在文章中讨论在开发企业架构中我所遇到的一系列问题:  视图--模型--实体  定位 资源的可配置  持久化  出版---订阅  数据校验主键生成  数据更新  数据传送  动态赋值  控制-分发  对象界面  代理  在谈到我将要讨论的问题前,我希望你先要了解什么是模式,我不打算在 有限的篇幅中讨论模式,这是一个很广的问题。但必须首先声明的得是, 你阅读本文对模式的了解是基本要求,企业开发中模式将被大量使用,我 相信一个优雅,成功的系统模式的使用是不可少的。  关于模式的更多信息你可以参考 GOF 96 、SUN  DESIGN PATTERNS CORE、J2EE DESIGN PATTERNS 等文章。  第一部分 定位  一个有序的世界总是好的。  小时候玩玻璃球和三角,开始的时候总是将嬴来玻璃球放到一个盒子中,渐渐 的越来越多,于是我将他们分类,有瑕疵的放到一起,普通的放到一起,高级 的(可以一个换两到三个)放到一起,同样的三角也是如此存放,这样一来我 能够很容易的决定每次带什么样的出去玩。  开发架构的时候我碰到同样的问题,譬如大量的值对象、命令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 HLINK_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); }   通过服务定位 ,可以有效的减少服务成本,提高系统的性能。 正如上面所说的,在一个体系中定位资源是重要,这是组织整个架构的基础, 无论什么样的事件都是由个体组成,而有序的安排个体总是有序世界的第一 步。 在这一部分里,简要的谈了资源定位问题,下一部分将讨论资源的可配置问题。

[@more@]

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表亿方云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱daifeng@360.cn 处理。
上一篇:中小企业升级带来ERP商机(中小企业 erp)
下一篇:ERP真正能给企业带来什么(erp能为企业做什么)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~