面向理论和实际+散分
之前开过一贴讨论面向对象思想,结贴之后依然有不少朋友跟帖,给出了很多自己的看法,把自己的理解都说了出来,很中肯。确实受益良多。面向对象的思想是超出语言范围的一种思想,已经是与语言无关了。只是方便于人们认识事物的一种方法论。
下面是引用一位网友的原话
- C/C++ code
本人不懂C++,但面向对象的思想是一样的。依赖于抽象而不依赖与实现,并不难理解。比方说我们需要一个东西来盛水,这个东西只要有盛水的功能就行了,我们并不关心它是马克杯,乐扣杯,或者是解放牌大瓷缸,甚至是尿壶,这个能盛水的东西便是抽象(我们在脑海里只有一个概念,却没有实物),而马克杯或者其他的具体实物便是抽象的实现,面向抽象编程会非常灵活,并且低耦合,易于扩展和维护,还是那个比方,人是一个类,人有一个喝水的方法,想喝水就要依赖一个能盛水的容器,如果我要是依赖于具体编程,比如我今天想用乐扣杯盛水喝,明天想换个口味用尿壶,那么我就得每天都换一种(换一种实现就得修改一会类),非常麻烦,如果我依赖抽象(接口),我只是想喝水,只要这东西能盛水就行,我需要什么具体容器,就由它人来提供(工厂类提供一个具体实现的向上转型也就是抽象以便喝水的人可以用),来实现解耦
这确实是一个很通俗很形象的比喻来说明 依赖于抽象而非依赖于实现 这个问题
不过这些都是纯粹的理论,说的不好听就是纸上谈兵。
不过理论是必须先学的,以理论为指导嘛。更重要的是将理论运用到实际项目中去,解决实际问题。这就是另个鸿沟了,至于如何运用,什么时候运用这个必然是要经历一段很漫长的时间。
既然问题研究到这里了,我想每个人都应该知道自己缺少什么。我觉得这才是最最重要的。
PS:终于可以回家了,顺便散分,赚个RP。
[解决办法]
楼主最近醉心于OO啊。。。
我都不知道说什么好了,我这点东西都说完了。。。我的blog你也参考过了。。。
我看别人怎么说吧。。。
[解决办法]
我喜欢的C++。不仅能OO,还可以GP。
[解决办法]
有的时候在想,为什么非要抽象,我要干什么一步一步的做出来就行了,现在很多的人都喜欢用抽象化的东西,无论你走了几步路,我不否认代码的重复利用的强大,但人们很少考虑这个问题了,习惯于,很致命......
[解决办法]
C++越学越感觉有点臃肿。。。
[解决办法]
学习
[解决办法]
哦,我有句话要说,我觉得写UI,对学习面向对象大有益处。
当然了,不是拖拽控件那种UI的制作。
[解决办法]
http://blog.csdn.net/pongba/article/details/1611593 看看刘未鹏怎么说
[解决办法]
我总觉得学校好多教材教程都过度强调吹大OO了。以至于好多人认为不支持OO的语言就是老土 的语言。
然后问他们OO是啥 都答面向对象,问面向对象是啥 答class OO优势是啥 答:不用重复造轮子。
然后 习惯OO语言的 问他轮子怎么造 答:不知道,也不用知道。
好吧,总结一句,我们学的OO 很多情况不是在学习如何使用思想设计代码模块,而只是学习如何使用别人的轮子。
像这样发展的OO的话,编程语言终究会从一个需要思考的语言变成选择型语言....
好吧非鄙视贴,仅仅是一个小菜鸟的偏见。
[解决办法]
oo并不适合所有的问题~~~
[解决办法]
我没意见。。。。
就想接点分~
[解决办法]
对学点其他的,不能局限于一种语言,C++也是如此
[解决办法]
OO?
我搞C的,没有OO?
没有OO?的C与C++比怎么样??
[解决办法]
http://baike.baidu.com/view/1996652.htm
依赖倒转原则
抽象不应该依赖于细节,细节应当依赖于抽象。
要针对接口编程,而不是针对实现编程。
传递参数,或者在组合聚合关系中,尽量引用层次高的类。
主要是在构造对象时可以动态的创建各种具体对象,当然如果一些具体类比较稳定,就不必再弄一个抽象类做它的父类,这样有画蛇添足的感觉。
优点:
系统扩展灵活。
缺点:
需要大量的类。
[解决办法]
C/C++各有优势,没必要这样那样的非议。好的程序还是要看效率,使用何种语言次之了。
[解决办法]
面向接口编程,不要面向实现。接分来了
[解决办法]
思想还是和语言分开比较好,特定的语言都会限制思想的
[解决办法]
[解决办法]
问一下下,oo是什么嘛?
[解决办法]
[解决办法]
其实我们有的时候把问题固态化,这就是什么叫习惯,什么叫迷茫。多想,想些东西还是很有用的!,希望能对大家有些帮助,c转c++一年工作经验总结!