i*******D 发帖数: 993 | 1 是不是主要为了多人协作和大规模的项目阿?或者适合流水作业?刚开始学习面向对象
编程。感觉一个作者独立写的项目采用面向对象方式编程可能有很多overhead阿。除了
要考虑本身问题在算法上的结构外,还要考虑各个类之间的逻辑结构,消耗了很大的精
力。。。 网上有些例子就是尽量让你完全地面向对象化。main里面尽量少。
我明白面向对象的思想就是尽量封装和模块话。就像网络的层状结构。但是问题是这样
做本身也有额外的代价。就像很多时候实际的网络产品不是按照7层的方式来设计的。
请问各位大牛,在什么样的情况下适合面向对象方式?什么样的情况下用面向过程的方
式好呢? |
g*****g 发帖数: 34805 | 2 除了写系统内核之类的特定任务,面向对象适用于所有其他任务。
【在 i*******D 的大作中提到】 : 是不是主要为了多人协作和大规模的项目阿?或者适合流水作业?刚开始学习面向对象 : 编程。感觉一个作者独立写的项目采用面向对象方式编程可能有很多overhead阿。除了 : 要考虑本身问题在算法上的结构外,还要考虑各个类之间的逻辑结构,消耗了很大的精 : 力。。。 网上有些例子就是尽量让你完全地面向对象化。main里面尽量少。 : 我明白面向对象的思想就是尽量封装和模块话。就像网络的层状结构。但是问题是这样 : 做本身也有额外的代价。就像很多时候实际的网络产品不是按照7层的方式来设计的。 : 请问各位大牛,在什么样的情况下适合面向对象方式?什么样的情况下用面向过程的方 : 式好呢?
|
i*******D 发帖数: 993 | 3 好吧。我努力把自己的思维方式该造成面向对象的。。。
【在 g*****g 的大作中提到】 : 除了写系统内核之类的特定任务,面向对象适用于所有其他任务。
|
r********3 发帖数: 2998 | 4 面向对象最早是造飞机的人发明的。
因为以前飞机零部件太多了,内部线路太复杂了,修飞机的时候人爬进去,都是一捆一
捆的线路掏出来弄。后来他们就觉得太复杂了,于是要求工程师把每个部件都封装好,
只暴露控制信号线和电源线在外面就行了。这种思想在工程制造早就有了。
【在 i*******D 的大作中提到】 : 是不是主要为了多人协作和大规模的项目阿?或者适合流水作业?刚开始学习面向对象 : 编程。感觉一个作者独立写的项目采用面向对象方式编程可能有很多overhead阿。除了 : 要考虑本身问题在算法上的结构外,还要考虑各个类之间的逻辑结构,消耗了很大的精 : 力。。。 网上有些例子就是尽量让你完全地面向对象化。main里面尽量少。 : 我明白面向对象的思想就是尽量封装和模块话。就像网络的层状结构。但是问题是这样 : 做本身也有额外的代价。就像很多时候实际的网络产品不是按照7层的方式来设计的。 : 请问各位大牛,在什么样的情况下适合面向对象方式?什么样的情况下用面向过程的方 : 式好呢?
|
s******c 发帖数: 1920 | 5 一个人就能完成的project这种规模
OO带来的overhead很有可能会超过带来的好处
上了一定规模以后,OO还是有很多好处 比如代码的复用,更清晰的结构等等。
不过这些都是相对的,
Linus教主就认为不管啥,C就可以hold住了,什么都能hold住
【在 i*******D 的大作中提到】 : 是不是主要为了多人协作和大规模的项目阿?或者适合流水作业?刚开始学习面向对象 : 编程。感觉一个作者独立写的项目采用面向对象方式编程可能有很多overhead阿。除了 : 要考虑本身问题在算法上的结构外,还要考虑各个类之间的逻辑结构,消耗了很大的精 : 力。。。 网上有些例子就是尽量让你完全地面向对象化。main里面尽量少。 : 我明白面向对象的思想就是尽量封装和模块话。就像网络的层状结构。但是问题是这样 : 做本身也有额外的代价。就像很多时候实际的网络产品不是按照7层的方式来设计的。 : 请问各位大牛,在什么样的情况下适合面向对象方式?什么样的情况下用面向过程的方 : 式好呢?
|
r********3 发帖数: 2998 | 6 不会啊。我觉得Linux内核代码真的是面向对象的好处。
比如说Linux内核的驱动,就是典型的面对对象。虽然C没有class,但是Linus居然用
struct和函数指针的方式来实现了面向对象,相当赞!
【在 s******c 的大作中提到】 : 一个人就能完成的project这种规模 : OO带来的overhead很有可能会超过带来的好处 : 上了一定规模以后,OO还是有很多好处 比如代码的复用,更清晰的结构等等。 : 不过这些都是相对的, : Linus教主就认为不管啥,C就可以hold住了,什么都能hold住
|
s****t 发帖数: 698 | 7
就酒肉穿肠过,佛祖心中留一样。
OO是一种思想,和具体的实现无关。
所以,C也可以写出OO的代码。
【在 s******c 的大作中提到】 : 一个人就能完成的project这种规模 : OO带来的overhead很有可能会超过带来的好处 : 上了一定规模以后,OO还是有很多好处 比如代码的复用,更清晰的结构等等。 : 不过这些都是相对的, : Linus教主就认为不管啥,C就可以hold住了,什么都能hold住
|
s******c 发帖数: 1920 | 8 上了境界以后语言就是工具了,
只是一般人做不到,其实用C写OO挺累的,
我花时间啃过Object-Oriented Programming With ANSI-C
结论就是, 真费事, 要不是写底层追求性能 真犯不着
【在 r********3 的大作中提到】 : 不会啊。我觉得Linux内核代码真的是面向对象的好处。 : 比如说Linux内核的驱动,就是典型的面对对象。虽然C没有class,但是Linus居然用 : struct和函数指针的方式来实现了面向对象,相当赞!
|
r********3 发帖数: 2998 | 9 我觉得有时间去读读Linux Kernel的源代码,会学会很多东西。小到一些coding技巧,
大到设计模式。细到机器指令,大到算法调度,都有覆盖。
【在 s******c 的大作中提到】 : 上了境界以后语言就是工具了, : 只是一般人做不到,其实用C写OO挺累的, : 我花时间啃过Object-Oriented Programming With ANSI-C : 结论就是, 真费事, 要不是写底层追求性能 真犯不着
|
g*****g 发帖数: 34805 | 10 可以做跟方便做是两回事。就跟理论上啥都可以用汇编写一样。
【在 s****t 的大作中提到】 : : 就酒肉穿肠过,佛祖心中留一样。 : OO是一种思想,和具体的实现无关。 : 所以,C也可以写出OO的代码。
|
v*****r 发帖数: 1119 | 11 OO 的概念应该最早是出现于 simulation
【在 i*******D 的大作中提到】 : 是不是主要为了多人协作和大规模的项目阿?或者适合流水作业?刚开始学习面向对象 : 编程。感觉一个作者独立写的项目采用面向对象方式编程可能有很多overhead阿。除了 : 要考虑本身问题在算法上的结构外,还要考虑各个类之间的逻辑结构,消耗了很大的精 : 力。。。 网上有些例子就是尽量让你完全地面向对象化。main里面尽量少。 : 我明白面向对象的思想就是尽量封装和模块话。就像网络的层状结构。但是问题是这样 : 做本身也有额外的代价。就像很多时候实际的网络产品不是按照7层的方式来设计的。 : 请问各位大牛,在什么样的情况下适合面向对象方式?什么样的情况下用面向过程的方 : 式好呢?
|
e*****t 发帖数: 1005 | 12 check out ada
【在 v*****r 的大作中提到】 : OO 的概念应该最早是出现于 simulation
|
s****t 发帖数: 698 | 13
我好像没说方便吧?赫赫
【在 g*****g 的大作中提到】 : 可以做跟方便做是两回事。就跟理论上啥都可以用汇编写一样。
|
t***m 发帖数: 358 | 14 这有什么可赞的。OO内部本来就是这么实现的。早期的C++就是C的wrapper,class
precompile成 C 的struct加函数指针,然后再调c的compiler。
【在 r********3 的大作中提到】 : 不会啊。我觉得Linux内核代码真的是面向对象的好处。 : 比如说Linux内核的驱动,就是典型的面对对象。虽然C没有class,但是Linus居然用 : struct和函数指针的方式来实现了面向对象,相当赞!
|