DDD、OOA、OOD、OOP和OOT

DDD、OOA、OOD、OOP和OOT到底有什么区别和联系?其实很简单。带OO的是相对更传统的系统设计方法论,可简称:面向对象设计方法论;DDD是相对来说目前更加流行的方法论,可称为:领域驱动设计方法论。

OO

OO是面向对象,这个不解释。OOA是面向对象分析,主要指将问题域的现实中对象进行分析建模;OOD是面向对象设计,主要是将OOA的结果做进一步规范和整理、细化,便于OOP接受;OOP是面向对象编程,用面向对象的语言来实现OOD;OOT是面向对象测试,进行以对象为中心的软件测试。

有人会将OOA+OOD和DDD做比较,有人会将OOA+OOD+OOP与DDD做比较,我这里又加上了OOT,原因是DDD没有明确规定所属的阶段,所以与哪些阶段比较都问题不大,主要是OO方法论与DDD方法论的比较。

拿金融领域的三户模型来举个例子。

三户模型是“客户、用户、账户”的简称。这种思想围绕着“以客户为中心”来展开:围绕客户建立用户和账户,三者相互关联。这是一种OOA的表达和思考方式:先有对象,面向对象建模。

d1ae78d7464f8563582ec39a081ba9a4.png

向上图一样,初步细化展开的过程是OOD设计过程。

而DDD思维是怎样一个过程呢?客户描述的是社会域,客户之间要建立联系社交、娱乐等活动;用户描述的业务域,用户要账号注册、使用A产品、B产品;账户描述的是资金域,资金域又有账号、权限这些子域。

用OO的思想,更注重对象和属性来展开,DDD更偏重领域划分和他们之间的动态关系,同时也偏重行为。

这就是如果一个从互联网公司的一个年轻人,要和传统银行等行业的老人,技术上可能会有点难沟通。老人可能会更偏重OO视角,年轻人更偏重DDD视角。在工具选用上,OOD喜欢使用UML工具,用例图、类图、对象图、时序图;DDD喜欢从架构图开始。

  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值