首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >DDD、OOA、OOD、OOP和OOT

DDD、OOA、OOD、OOP和OOT

作者头像
静儿
发布2026-09-18 08:29:28
发布2026-09-18 08:29:28
1040
举报
文章被收录于专栏:编程一生编程一生

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的表达和思考方式:先有对象,面向对象建模。

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

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2026-09-17,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档