请教:我想解除业务逻辑层与持久层的偶合

03-11-06 kitta
我现在是这么做的:(我无法上传图片,只好干说拉!)

businessrule

------------

Account 接口

AccountManager 类

AccountManagerHelper 接口

jdoimpl

------------

JDOAccount implements Account

JDOAccountManagerHelper implements AccountManagerHelper

AccountManager的构造函数要求提供一个AccountManagerHelper的实现类。AccountManager借助AccountManagerHelper提供业务逻辑的实现。

这么做比用Template模式的优点是没有限制AccountManager与实现类的层次关系。比如JDOAccountManagerHelper可以从一个JDOManagerHelper继承一些JDO有关的公用方法。

请各位指点一下。

banq
2003-11-07 18:02
>AccountManager的构造函数要求提供一个AccountManagerHelper的实现类?

这就是说,编译AccountManager时还需要AccountManagerHelper?这不是还有联系吗?

kitta
2003-11-07 19:31
AccountManager由系统根据配置文件生成,比如:

public final class AccountManager

{

private AccountManagerHelper helper;

private AccountManager(AccountManagerHelper helper){

itsHelper = helper;

}

public static AccountManager getInstance(){

AccountManagerHelper helper = null;

helper = Application.createInstance("AccountManagerHelper");

return new AccountManager(helper);

}

}

猜你喜欢