文章目录

  • OOA
  • OOD
  • OOP
  • 总结

相关文章:

  1. 一篇搞懂OOA/OOD/OOP的区别
  2. 面向对象的基本原则-抽象,封装,继承,分解
  3. GRASP模式概述
  4. 面向对象的六大原则

OOA什么鬼,OOD又是什么鬼,OOP我去这个又是什么鬼,都是面向对象怎么就出现了三个呢,我咋感觉对此一无所知,迷失在OO中。如果你跟曾经我一样的迷惑,请往后看。没有迷惑请移步其他文章。

下面以项目开发过程,来说明OOA,OOD,OOP。

一般我们我们接到产品经理的需求后,开发阶段分如何几个步骤

  1. 可行性预研阶段,此阶段评估需求是否合理,能否实现。
  2. OOA阶段,此阶段分析用例,定义领域模型。
  3. OOD阶段,此阶段定义类图,类之间的交互图(时序图等等)。
  4. OOP阶段,根据OOD设计的类图,类之间的交互图输出代码。


可行性预研阶段,我们不做说明了, 接下来具体说明OOA,OOD,OOP。

OOA

OOA全拼为Object-Oriented Analysis,面向对象分析。此过程是把现实的需求转义为领域模型(Domain Model)问题,以及输出领域模型(Domain Model)。第一步是根据需求输出用例,用例为一个一个场景,用户与App交互的场景。第二步是根据用例输出领域模型(Domian Model),领域模型(Domain Model)也就是我们常说的业务逻辑。会输出概念类,概念类的交互的关系,这部分概念类一般直接反应现实的事物。

OOD

OOD全拼为Object-Oriented Design,面向对象设计。此过程是把我们的领域模型转为逻辑架构,类图,类之间的关系。
如何分层,如何分包,如何保证高内聚低耦合都是这部分要考虑的问题。这个阶段输出类图,时序图,包图等等。

OOP

OOP全程为Object-oriented programming,面向对象编程。是把我们OOD的设计结果转为代码。

总结

OOA,OOD,OOP是针对现实的需求最终输出产品过程。在现实中OOA,OOD并没有显著的区分。OOA,OOD,OOP有时是不断的交替进行。

限于个人水平,有错误请指出,大家共同学习进步!

扫码关注公众号,查看更多内容。

一篇搞懂OOA/OOD/OOP的区别相关推荐

  1. OOA/OOD/OOP的区别

    这是一个故事: "工程師修了一條隧道,隧道的一端就是美麗的風景,很多人會開車通過隧道.雖然隧道內已經有燈了,但是設計者擔心隧道可能會停電,所以在隧道的入口立了牌子,提醒駕駛員進入隧道前開燈. ...

  2. python 类-Python入门--一篇搞懂什么是类

    原标题:Python入门--一篇搞懂什么是类 写一篇Python类的入门文章,在高级编程语言中,明白类的概念和懂得如何运用是必不可少的.文章有点长,3000多字. Python是面向对象的高级编程语言 ...

  3. C++ 一篇搞懂多态的实现原理

    C++ 一篇搞懂多态的实现原理 虚函数和多态 01 虚函数 在类的定义中,前面有 virtual 关键字的成员函数称为虚函数: virtual 关键字只用在类定义里的函数声明中,写函数体时不用. cl ...

  4. 一篇搞懂微信小程序以及和其他对比

    一篇搞懂微信小程序以及和其他对比** 前两年的文章了,现在小程序肯定是有变化的,作为自己的随记 一.产品定位及功能分析** 微信小程序是一种全新的连接用户与服务的方式,他可以在微信内被便捷的获取和传播 ...

  5. 在java中三种编程思想(OOA,OOD,OOP)

    在java中三种编程思想:OOA,OOD,OOP OOA 一.OOA的主要原则. 二.面向对象分析产生三种分析模型 三.OOA的主要优点 四.OOA方法的基本步骤 OOD 一.OOD背景知识 二.OO ...

  6. 一篇搞懂关于计算机的减法运算

    一篇搞懂关于计算机的减法运算 减法 相减结果为正的减法 相减结果为负数的减法 减法 相减结果为正的减法 如下一篇拙言,是自己平时的总结,如有错误欢迎各位大佬指正. 相信你一定听说过,补码,取反加一等等 ...

  7. 一文带你彻底搞懂i++和++i的区别,谁的效率更高?

    作者简介:Codebowl靓仔,学妹的工具人,C++开发误入数据开发,梦想30岁退休的靓仔就是我啦. i++和++i对于初学者来说,一直是一个特别容易搞混的内容,相信很多人现在也没有完全搞清(作者初学 ...

  8. 彻底搞懂BLDC与PMSM的区别

    彻底搞懂BLDC与PMSM的区别 从结构上看 从控制上看 从应用上看 BLDC,直流无刷电机,也可以叫电子换向直流电机,反电势为梯形波,定子电流为矩形波,一般定子为集中整距绕组. PMSM,永磁同步电 ...

  9. 彻底搞懂a++和++a的区别

    a++到底做了什么操作 a++是一组操作,它的过程是这样的(假设此时a的值为10): 获取到a的值,也就是10. 进行计算,也就是把获取到的值加一,得到计算后的结果,也就是11 把计算后的结果重新赋值 ...

最新文章

  1. Ruby: Ruby脚本在测试中的使用
  2. 8.11. Migrating MySQL Data into Elasticsearch using logstash
  3. openstack migrate image
  4. web前端入门学习 css(1)
  5. 【五校联考7day1】n染色
  6. mysql 遍历二叉树_【自考】数据结构之二叉树遍历
  7. 辽宁科技大学计算机好调剂吗,2020年辽宁科技大学硕士研究生调剂办法
  8. java彩色的世界_JAVA真彩色转256色的实现
  9. 注解@resource的作用_Bean基于Annotation(注解)的装配方式
  10. 如何将32 x 32像素图标转换为16 x 16像素值的图标
  11. 一种真正意义上的Session劫持
  12. 华为Mate50系列今年没戏:或明年第二季度末发布 5G有望回归
  13. .NET Core 中读取appsettings.json配置文件的方法
  14. android手机视频,安卓手机视频加密软件
  15. 科研英文论文翻译工具——Copytranslator
  16. 大型企业能源管理系统的设计与应用
  17. StdAfx.h显示错误,无法打开
  18. 高项论文(质量管理2)
  19. java有有哪些锁_java编程中锁状态的分类都有哪些
  20. 如何使用动态域名,并且自己来定时更新

热门文章

  1. IDEA右键创建servlet,没有servlet选项的解决办法(转载)
  2. 缺陷轰炸和beta测试详解
  3. 51 OCP Oracle数据库认证精品辅导班8期
  4. MATLAB Symbolic Math Toolbox
  5. zlog日志系统开发中遇到的问题(2)
  6. 《深入理解计算机系统》
  7. UE4/UE5 打包发布与补丁
  8. 本地调试微信之内网穿透 ngrok/frp
  9. 启动hive的时候master:8020 failed on connection exception
  10. ADC类型和技术指标