标签:
javait |
分类: JAVA基础 |
本来我尽量避免关于方法论方面的主义之争,但一些话如骨鲠在喉,不吐不快。
软件领域方法论大师的著作发人深省,通常代表着软件开发的未来模式。当然,我们在读大师之后,掩卷沉思之余,最好也保持自己的独立意见。
希望本文能够唤起一些对基本概念和基本功的重视(追逐新潮概念之余,同时也固本培源)。
1. Domain Object的重新提出的背景
Domain Object并不是一个全新的概念,而是继承以前的纯面向对象开发的思路。
由于当前O/R Mapping, DAO开发结构的层次划分,导致出现了大量的纯粹数据对象。这些数据对象只带有getter,
setter属性,而不具有属于自己的方法,起着Data Transfer Object的作用。
Domain Object 则是重新提出并进一步探讨纯面向对象编程的概念:对象不仅应该具有数据,而且应该具有自己的方法。
这个过程和Spring的出现过程很像。
EJB时代之前,大家本来就是采用着轻量编程模型,只是那个时候,轻量编程架构还不成体系。EJB时代中,还坚持轻量编程模型,难免被看作顽固保守。EJB时代之末,轻量编程架构Spring大获成功。
2. Domain Object的划分准则
Domain Object是纯粹的OO对象(这
标签:
aopit |
分类: 设计模式&UML |
目前整个开发社区对AOP(Aspect Oriented Programing)推崇备至,也涌现出大量支持AOP的优秀Framework,--Spring, JAC, Jboss AOP 等等。AOP似乎一时之间成了潮流。Java初学者不禁要发出感慨,OOP还没有学通呢,又来AOP。本系列文章便是为您做出这方面的补救,只是通过一个简单的例子便可以向初学者展示一下如何来进行AOP。
为了简单起见,例子没有没有使用任何第三方的AOP Framework,而是利用Java语言本身自带的动态代理功能来实现AOP。
让我们先回到AOP本身,AOP主要应用于日志记录,性能统计,安全控制,事务处理等方面。它的主要意图就要将日志记录,性能统计,安全控制等等代码从商业逻辑代码中清楚的划分出来,我们可以把这些行为一个一个单独看作系统所要解决的问题,就是所谓的面向问题的编程(不知将AOP译作面向问题的编程是否欠妥)。通过对这些行为的分离,我们希望可以将它们独立地配置到商业方法中,而要改变这些行为也不需要影响到商业方法代码。
AOP是面向方面(
标签:
javait |
分类: JAVA基础 |
private static TimeZone defaultZone = null;
public static synchronized void setDefault(TimeZone zone)
亲爱的朋友: