2017-04-26 44 views
1

我正在寻找描述设计模式(或反模式)的术语,该设计模式描述系统何时按泛化而非业务条款进行组织。域驱动设计的相反之处是什么?

例如,考虑的领域驱动例如:

Customer.Load 
Account.Load 
Orders.Load 

VS:

Load.LoadCustomers 
Load.LoadAccounts 
Load.LoadOrders 

另一个例子可以在这里看到在MVC: ASP.NET MVC - putting controller & associated views in the same folder?

虽然更多关于组织VS设计,来自pettys IMO的评论是正确的:

认识到这里系统有两个维度, 架构和业务。原始海报想要在一个地方保留处理某个商业关注的所有零件。默认的ASP.NET MVC布局将单个业务关注点分散在 之外,因此架构类似的类可以保持在一起。 这两种选择,我宁愿有事情由企业 关注比通过分组架构关注

只有一种办法身体组织项目之间。 OP要求按域进行组织,Pettys将默认组织描述为“架构上”组织的。但是,我更好地分类是这个“建筑”组织。

在我看来,这是面向方面的设计,即设计偏向于关于一般过程的分类而不是业务的具体条款。我不打算将此与面向方面的编程相混淆,它可以补充DDD,但是它令人困惑,这就是为什么我想知道是否有更好的名字。

+0

你也许可以称之为“面向服务架构”(显然有负面的含义)。你的第二个例子强调了什么,从而忽略了事情的原因。 – GhostCat

+0

操作驱动设计(ODD)? –

+0

我从来没有听说过这个架构的名称。但它绝对似乎支持程序编程而不是OOP。我相信我在几篇博客文章中看到了一些类似的有用模式,声称自己是软件工程的圣杯 – djvuk

回答

0

系统的组织方式有很多种概括。据我所知,在DDD出版时,大约有2003年的一些流行趋势。

  • 表驱动或数据驱动的设计,通常意味着从一组特定的关系数据中派生出您的实现。
  • 模型驱动的设计,通常意味着从UML图派生出您的实现。
  • 配置驱动设计,通常意味着将尽可能多的实现转换为XML文件。

我确定还有更多的,你可以说他们都更关注系统的架构而不是它的领域。回想起来,你可以考虑将它们中的一些或全部作为反模式。用尼尔福特的话说,

今天的最佳做法是明天的反模式。

参考:https://visualstudiomagazine.com/articles/2015/07/01/domain-driven-design.aspx

+0

我喜欢这个引用;) –

+0

这促使我尝试匹配已知的反模式: https://en.wikipedia.org/wiki/Anti-pattern#Software_design 这是一种“BaseBean”理念。 –