2016-09-29 79 views
0

我是ADF的新成员,来自.Net背景。我的目标是为我的应用程序转向DDD,以便代码被封装并代表我的业务流程。该计划推动我朝着使用CQRS将我的域模型/命令与用于查询和显示的VO(可能使用ESS或SOA组件推送事件以分离数据存储,但最初使用单个数据库)分离。在Oracle ADF中实现CQRS

我找不到在自动进稿器,利弊此实现任何信息等

我想知道: 做什么,我试图在ADF世界有意义?为什么/为什么不? 在这种情况下使用ADF时可能会出现什么样的挑战。

回答

0

副手?我认为你是在过度设计这个。我会从你想用CQRS解决ADF Architecture问题开始?如果您需要与SOA服务集成,您可以创建基于Web服务的VOs。ADF Faces是由服务器生成的,并且您可以创建基于Web服务的VOs。ADF拥有4个“堆栈” - ADF BC是数据堆栈 - 基于表/视图的EO/UI层。 ADF控制器处理页面到页面导航。 ADF模型是位于ADF BC和ADF Faces之间的数据抽象层,允许通过视图层进行数据移动和数据层操作,而无需直接连接 - 保持层/层分离。要操作一个VO,你要么操纵一个模型绑定迭代器 - 它引用VO行集迭代器和/或直接在VO(不是我选择的设计)或应用程序模块(我的选择)上暴露定制的Java行为然后可以通过按钮/链接或直接执行暴露给UI,同时保持UI和模型与数据层的分离。 所有这些代码都是由JDeveloper向导以及工具和编辑器为您生成和维护的。所以只需要添加自定义代码。

因此,ADF实现了一种模型 - 视图 - 控制器设计模式。 我没有看到ADF提出的问题,通过在CQRS中添加另一个抽象层来解决。 。

+0

我正试图解决跨大型组织的性能和代码结构。我想到的更像是分离命令逻辑代码,并且具有快速查询VOs –

+0

另外,许多处理是异步的,并且是通过单独的处理器完成的,所以它在大多数情况下并没有真正获得UI模式的好处处理。此外,我有几个模式可以切入我的整个项目,所以我想抽象出这些并获得良好的测试覆盖率。 –