小编Mar*_*nik的帖子

DDD(Domain-Driven-Design) - 大型聚合

我目前正在研究Eric Evans'es Domain-Driven-Design.聚合的想法对我来说很清楚,我发现它非常有趣.现在我想到一个像聚合的例子:

BankAccount(1)---->(*)交易.

BankAccount
BigDecimal calculateTurnover();
Run Code Online (Sandbox Code Playgroud)

BankAccount是一个聚合.为了计算营业额,我应该遍历所有交易并总结所有金额.埃文斯假设我应该使用存储库来加载aggreagates.在上面的例子中,可能有几万个事务,我不希望在内存中同时加载.

在存储库模式的上下文中,聚合根是唯一的对象>您的客户端代码从存储库加载.

存储库封装了对子对象的访问 - 从调用者的角度来看,它会自动加载它们,无论是在加载根目录还是实际需要它们时(如延迟加载).

你有什么建议在DDD聚合中实现calulcateTurnover?

domain-driven-design aggregate

7
推荐指数
1
解决办法
2051
查看次数

Java DOM 默认命名空间

我想使用 DOM 创建一个带有默认命名空间的 XML:

   <?xml version="1.0" encoding="US-ASCII"?>
<test xmlns="example:ns:uri" attr1="XXX" attr2="YYY">
  <el>bla bla</el>
</test>
Run Code Online (Sandbox Code Playgroud)

我有以下

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
DocumentBuilder db = dbf.newDocumentBuilder();
resultingDOMDocument = db.newDocument();
Element rootElement =
   resultingDOMDocument.createElementNS("example:ns:uri", "test-results-upload");
rootElement.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns", "example:ns:uri");
rootElement.setAttributeNS("example:ns:uri", "attr1", "XXX");
rootElement.setAttributeNS("example:ns:uri", "attr2", "YYY");
Run Code Online (Sandbox Code Playgroud)

我得到

<?xml version="1.0" encoding="US-ASCII"?>
<test xmlns="example:ns:uri" ns0:attr1="XXX" xmlns:ns0="example:ns:uri" ns1:attr2="YYY" xmlns:ns1="example:ns:uri">
  <el>bla bla</el>
</test>
Run Code Online (Sandbox Code Playgroud)

我在 JDK v6 中使用标准 DOM API。我究竟做错了什么 ?我想强调 - 我想使用默认命名空间,我不想使用命名空间前缀。

java dom default namespaces

3
推荐指数
1
解决办法
4237
查看次数