轻量级开发的成功秘诀,第 1 部分: 核心原则及原理
2009-11-11 00:00:00 来源:WEB开发网依赖注入
最新一代容器称为轻量级容器,它们使用一个共同设计原理:依赖注入。 对这个简单思想来说,这是一个复杂的术语。依赖注入让您将对象和它所依赖的东西交给第三方。然后第三方创建所有对象并将它们绑在一起。比方说,称为 myDao 的数据访问对象需要一个称为 ds 的数据源。那么该容器会一同创建它们,并设置一个属性:
清单 1. 创建一个第三方汇编程序myDao = new Dao();
ds = new DataSource();
myDao.setDataSource(ds);
当然,不创建这种第三方汇编程序的话,您也可以使用框架来做其他附加的工作(如提供配置支持)。Spring 框架、Pico 和 HiveMind 就扮演了这个角色。其他像 JavaServer Faces(JSF) 框架也利用了依赖注入。
面向对象编程
使用面向对象编程(AOP),您可以编写通用的功能性模块(称为方面) —— 例如,日志、事务、安全或持久性。AOP 使您可以将这些方面联系到 POJO,然后指定一个时间点(如方法开始时或产生异常时)和另一个需要联系的方面。例如,您可能想要创建一个外观事务对象。您可以在调用方法时将 TransactionBegin 方面关联到外观方法。然后在产生异常时将 RollBack 方面关联到外观的异常。最后,在方法结束时将 Commit 方面关联到外观的方法。您在配置中完成这些工作,而不是通过编写代码。依靠这种能力,您可以创建一个简单的 POJO 事务、安全或远程访问。
您现在已经得到了关于 POJO 的声明性事务,这对企业应用程序非常有用。使用这些工具,您可以完全放弃 EJB,或者最小化它的作用。而这正是轻量级组件所要做的。
透明持久性
持久性也是建立在较简单的编程模型之上。透明持久性框架通过配置而不是编写代码,来使您为应用程序添加持久性。因为大多数应用程序是面向对象的,并且访问一个关系数据库,所以一些专家断言,我们最终将进入对象关系映射的时代。我目前发现的顶级持久性解决方案是 SolarMetric 的 Kodo JDO 和 Hibernate。在后面的文章中我将详细比较这些解决方案。其他轻量级解决方案,例如 iBATIS 和 Active Record 设计模式,根本不会试图进行对象关系映射。
结束语
在轻量级开发中,您基本上可以:
合并过程、技术和原理。
优先选择较简单的技术。
在一个稳固、轻量级的基础上,进行构建。
尽量争取最可能的透明性。
使用您可以利用的技术,如依赖注入和 AOP。
一定要明白,无论技术还是过程都不能完整定义轻量级开发。它是一个包罗万象的概念。伴随本系列的文章,您将看到对轻量级技术和原理的各种各样的讨论。我将首先关注开源框架,并着重讲述轻量级容器。后面的文章,我会讨论保守公司内的轻量级方法实现,甚至还有一些超越了 Java 技术的替代方案。我非常喜欢这个系列的文章,希望您也一样。
更多精彩
赞助商链接