一篇搞懂OOA/OOD/OOP的区别
文章目录
- OOA
- OOD
- OOP
- 总结
相关文章:
- 一篇搞懂OOA/OOD/OOP的区别
- 面向对象的基本原则-抽象,封装,继承,分解
- GRASP模式概述
- 面向对象的六大原则
OOA什么鬼,OOD又是什么鬼,OOP我去这个又是什么鬼,都是面向对象怎么就出现了三个呢,我咋感觉对此一无所知,迷失在OO中。如果你跟曾经我一样的迷惑,请往后看。没有迷惑请移步其他文章。
下面以项目开发过程,来说明OOA,OOD,OOP。
一般我们我们接到产品经理的需求后,开发阶段分如何几个步骤
- 可行性预研阶段,此阶段评估需求是否合理,能否实现。
- OOA阶段,此阶段分析用例,定义领域模型。
- OOD阶段,此阶段定义类图,类之间的交互图(时序图等等)。
- 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的区别相关推荐
- OOA/OOD/OOP的区别
这是一个故事: "工程師修了一條隧道,隧道的一端就是美麗的風景,很多人會開車通過隧道.雖然隧道內已經有燈了,但是設計者擔心隧道可能會停電,所以在隧道的入口立了牌子,提醒駕駛員進入隧道前開燈. ...
- python 类-Python入门--一篇搞懂什么是类
原标题:Python入门--一篇搞懂什么是类 写一篇Python类的入门文章,在高级编程语言中,明白类的概念和懂得如何运用是必不可少的.文章有点长,3000多字. Python是面向对象的高级编程语言 ...
- C++ 一篇搞懂多态的实现原理
C++ 一篇搞懂多态的实现原理 虚函数和多态 01 虚函数 在类的定义中,前面有 virtual 关键字的成员函数称为虚函数: virtual 关键字只用在类定义里的函数声明中,写函数体时不用. cl ...
- 一篇搞懂微信小程序以及和其他对比
一篇搞懂微信小程序以及和其他对比** 前两年的文章了,现在小程序肯定是有变化的,作为自己的随记 一.产品定位及功能分析** 微信小程序是一种全新的连接用户与服务的方式,他可以在微信内被便捷的获取和传播 ...
- 在java中三种编程思想(OOA,OOD,OOP)
在java中三种编程思想:OOA,OOD,OOP OOA 一.OOA的主要原则. 二.面向对象分析产生三种分析模型 三.OOA的主要优点 四.OOA方法的基本步骤 OOD 一.OOD背景知识 二.OO ...
- 一篇搞懂关于计算机的减法运算
一篇搞懂关于计算机的减法运算 减法 相减结果为正的减法 相减结果为负数的减法 减法 相减结果为正的减法 如下一篇拙言,是自己平时的总结,如有错误欢迎各位大佬指正. 相信你一定听说过,补码,取反加一等等 ...
- 一文带你彻底搞懂i++和++i的区别,谁的效率更高?
作者简介:Codebowl靓仔,学妹的工具人,C++开发误入数据开发,梦想30岁退休的靓仔就是我啦. i++和++i对于初学者来说,一直是一个特别容易搞混的内容,相信很多人现在也没有完全搞清(作者初学 ...
- 彻底搞懂BLDC与PMSM的区别
彻底搞懂BLDC与PMSM的区别 从结构上看 从控制上看 从应用上看 BLDC,直流无刷电机,也可以叫电子换向直流电机,反电势为梯形波,定子电流为矩形波,一般定子为集中整距绕组. PMSM,永磁同步电 ...
- 彻底搞懂a++和++a的区别
a++到底做了什么操作 a++是一组操作,它的过程是这样的(假设此时a的值为10): 获取到a的值,也就是10. 进行计算,也就是把获取到的值加一,得到计算后的结果,也就是11 把计算后的结果重新赋值 ...
最新文章
- Ruby: Ruby脚本在测试中的使用
- 8.11. Migrating MySQL Data into Elasticsearch using logstash
- openstack migrate image
- web前端入门学习 css(1)
- 【五校联考7day1】n染色
- mysql 遍历二叉树_【自考】数据结构之二叉树遍历
- 辽宁科技大学计算机好调剂吗,2020年辽宁科技大学硕士研究生调剂办法
- java彩色的世界_JAVA真彩色转256色的实现
- 注解@resource的作用_Bean基于Annotation(注解)的装配方式
- 如何将32 x 32像素图标转换为16 x 16像素值的图标
- 一种真正意义上的Session劫持
- 华为Mate50系列今年没戏:或明年第二季度末发布 5G有望回归
- .NET Core 中读取appsettings.json配置文件的方法
- android手机视频,安卓手机视频加密软件
- 科研英文论文翻译工具——Copytranslator
- 大型企业能源管理系统的设计与应用
- StdAfx.h显示错误,无法打开
- 高项论文(质量管理2)
- java有有哪些锁_java编程中锁状态的分类都有哪些
- 如何使用动态域名,并且自己来定时更新