面向对象好还是面向过程好

ma100 2011-06-13 11:22:33
一般人的第一反应肯定是对象好,但我发现在需求明确的情况下会好,否则更糟糕。
比如实现一个事情,如果A的情况下cout <<"A"; 如果B的情况下cout <<"B";
那么用面向过程的就写成if else,面向对象写成A类和B累都继承自一个基类,里面有个虚函数,A类B类都重新实现了。

这样看来面向对象的更好些,以后加个C会比较简单。

但这只是建立在这个需求框架比较稳定的情况下,假如这个框架变 ,整个继承关系及组织结构都要变,尤其继承层次比较多(大于3层)更容易让设计推倒重来。
相比而言,面向过程的复杂度增加的不是太多。

不知道我说的对不对
...全文
319 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
xunxun 2011-06-20
  • 打赏
  • 举报
回复
具体问题具体分析
天外来客-007 2011-06-20
  • 打赏
  • 举报
回复
存在即合理,这只是理念的问题,理念的问题没有好坏之分,只有对某个问题是不是适合的问题!在解决问题时,选择你最适合的,就是最好的!
赵4老师 2011-06-17
  • 打赏
  • 举报
回复
面向过程解决不了再用面向对象。
dpf371 2011-06-16
  • 打赏
  • 举报
回复
考虑下
qingcairousi 2011-06-16
  • 打赏
  • 举报
回复
面向集合更好。
xiaoruiruipr 2011-06-16
  • 打赏
  • 举报
回复
这个嘛,看情况,C++的扩展性还是好于C的,C嘛显得更加基础,跟机器打得交道多一些。
qwert1643ou65923 2011-06-15
  • 打赏
  • 举报
回复
只有菜鸟才会在意哪个语言更好!
naturemickey 2011-06-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 luciferisnotsatan 的回复:]

现在流行函数式编程了。
[/Quote]
什么时候开始流行的?
好像现在命令式的语言仍然是主流吧!
月中蓝 2011-06-15
  • 打赏
  • 举报
回复
能解决问题的最好
Defonds 2011-06-15
  • 打赏
  • 举报
回复
老话题
ckc 2011-06-14
  • 打赏
  • 举报
回复
具体问题具体分析
并不存在哪种就一定好过另一种
BlackPointofSun 2011-06-14
  • 打赏
  • 举报
回复
到了最后都是面向机器
luciferisnotsatan 2011-06-14
  • 打赏
  • 举报
回复
现在流行函数式编程了。
至善者善之敌 2011-06-14
  • 打赏
  • 举报
回复
应用方向不同,没法比较,不过C是和底层接触最多的语言,C++是最TM难学的语言
就想叫yoko 2011-06-14
  • 打赏
  • 举报
回复
C++的扩展性要好于C的
好的扩展性来源于好的设计框架
比较两个语言的扩展性要以使用两种语言的水平相当为前提
风吹PP凉SS 2011-06-14
  • 打赏
  • 举报
回复
对于现代的大型程序而言,还是面向对手更得心应手,面向过程就有点力不从心了
pathuang68 2011-06-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 ma100 的回复:]
一般人的第一反应肯定是对象好,但我发现在需求明确的情况下会好,否则更糟糕。
比如实现一个事情,如果A的情况下cout <<"A"; 如果B的情况下cout <<"B";
那么用面向过程的就写成if else,面向对象写成A类和B累都继承自一个基类,里面有个虚函数,A类B类都重新实现了。

这样看来面向对象的更好些,以后加个C会比较简单。

但这只是建立在这个需求框架比较稳定的情况下,假……
[/Quote]

一般认为OOP比SOP更能适应变化。比如设计模式就是建立在OOP的基础之上,通过隔离需求中相对稳定和相对变化的部分,可以比较好地满足日益变化的需求。

当然什么东西都有个度。如果整个需求框架的变化不处于一个受控的状态之中(CMM中一个很重要的原则就是,一切变化必须是受控的),无论是SOP还是OOP,对于系统设计者而言都是nightmare。
ryfdizuo 2011-06-13
  • 打赏
  • 举报
回复
老话题了,不用去比较,存在就是合理的。

5,530

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧