佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

12
返回列表 发新帖
楼主: Mercygodlike

有谁能解释什么是OOP吗?

[复制链接]
发表于 24-11-2012 01:02 AM | 显示全部楼层
yeenfei 发表于 23-11-2012 11:45 PM
一些像eclipse 的IDE把开发者弄得越来越懒了 会自动提醒该type目前的设计access不到,列出解决方案12 ...

以现在越来越复杂的软件,platform,OS与libraries,
现在是不可能回去没有intellisense的IDE。
不是不要懂这些所谓basic的东西,
或者懒惰。
而是没有必要花这些时间去深入探讨这些No value added的事项。
应该把时间花在更有实际价值的事件上。
比如设计与逻辑。
相信没人会因为你懂得在code里把GUI弄好而赞扬你。

人类与飞禽走兽不同之处,
在于我们懂得利用工具。
有这么好的工具放着不用,
枉费这些工具的设计者的用心。

也正因为如此,
我们才有工作做嘛!
呵。。。

本帖最后由 Sunyata 于 24-11-2012 01:03 AM 编辑

回复

使用道具 举报


ADVERTISEMENT

发表于 24-11-2012 02:11 PM | 显示全部楼层
Sunyata 发表于 24-11-2012 01:02 AM
以现在越来越复杂的软件,platform,OS与libraries,
现在是不可能回去没有intellisense的IDE。
不是不 ...

还是喜欢C++, 有空位记得提拔偶 :RF:

回复

使用道具 举报

发表于 25-11-2012 10:18 AM | 显示全部楼层
yeenfei 发表于 24-11-2012 02:11 PM
还是喜欢C++, 有空位记得提拔偶 :RF:

哈哈。。。提拔就没能耐了。。。

C++的出路越来越少。。。
在新加坡很难混了。
在马来西亚我倒不清楚。。。
现在我是混C#的。。。


回复

使用道具 举报

发表于 25-11-2012 12:34 PM | 显示全部楼层
Sunyata 发表于 25-11-2012 10:18 AM
哈哈。。。提拔就没能耐了。。。

C++的出路越来越少。。。

很多重大的软件都需要C++,可惜不是在亚洲开发
回复

使用道具 举报

发表于 25-11-2012 12:44 PM | 显示全部楼层
yeenfei 发表于 25-11-2012 12:34 PM
很多重大的软件都需要C++,可惜不是在亚洲开发

是啊!
C/C++怎么说也陪了我走过不少岁月了。。。
以前常买的C/C++杂志也没了。。。
只能,说时代的不同,
科技的进步与需求,
要被替代的,还是躲不了。。。


回复

使用道具 举报

发表于 29-11-2012 02:52 PM | 显示全部楼层
另外,他们也喜欢把其实就是Global variable的变量,
一直的从这个Object, pass 进另一个object的。
为了能够一直pass来pass去,
结果需要define很多重复的method/constructor带进去,
以及要declare很多local variable来hold着它。。。
真是增加工作量又不reusable...
這麼做是為了消除耦合性

如果一個access很多global variable的class要搬到另一個project,那就要把所有access到的class也一起搬過去。如果那些class又access其他global variable,那不是無止盡?

還有一點是方便做unit test。unit test一般是驗證method/function的正確性,如果耦合性太高test case會很難寫。

回复

使用道具 举报

Follow Us
发表于 23-12-2012 11:46 PM | 显示全部楼层
MaokeJackson 发表于 29-11-2012 02:52 PM
這麼做是為了消除耦合性

如果一個access很多global variable的class要搬到另一個project,那就要把所有a ...

并不是很认同你的见解。
耦合性高不高,不是OOP就能减少的。
这可要看设计者如何设计了。

当把一个所谓的OOP的class搬到其他project时,
同样的如果其中牵涉到其他class,也是一样要把牵涉的class都搬过去。
同样的,那些class又access其他class的variable,也是一样无止境的搬过去。

软件设计很难有所谓的一个Generic的format的。
不论你怎么做,还是有必须要更改,要custaomize的事项的。

有些class是可以OOP,可以做成generic的。
有些是多此一举的。
比如:把一个巴士的class搬到地铁project里。
很多的东西都得改。

过度的迷信OOP,
只是增加不实际又不实用的工作量而已。
美其名符合OOP或现代软件工程,
实为浪费资源与效率。




回复

使用道具 举报

发表于 3-1-2013 03:59 PM | 显示全部楼层
Sunyata 发表于 23-12-2012 11:46 PM
并不是很认同你的见解。
耦合性高不高,不是OOP就能减少的。
这可要看设计者如何设计了。

我是針對使用Global Variable這點作回應,不是OOP。

順便分享一篇文章
http://coolshell.cn/articles/8745.html

回复

使用道具 举报


ADVERTISEMENT

发表于 4-1-2013 12:17 AM | 显示全部楼层
MaokeJackson 发表于 3-1-2013 03:59 PM
我是針對使用Global Variable這點作回應,不是OOP。

順便分享一篇文章

那么说你有消除耦合性的OOP了?
愿闻其详。

至于你给的link其实是想演示polymorphism。
虽然我对java不是很熟悉,
不过大略看得懂。

他做的例子好不好,见仁见智。
不过他还是用了不少的global/public static。
严格来说他的不是OOP了,
他已经用public static value,暴露了value以及使用了static的register。


我个人还蛮喜欢polymorphism和inheritance的。
至于encapsulation就有所保留了,
只会选择性的运用。




本帖最后由 Sunyata 于 4-1-2013 01:46 AM 编辑

回复

使用道具 举报

发表于 28-1-2013 11:53 AM 来自手机 | 显示全部楼层
谈oo, 就要讲object跟class两个概念。class用一句话讲完, 就是你自己define 的data type. data type 你懂吧,如char, int, long. 但这些都是built in的由 compiler 决定。如 int a;  a这个object 代表计算机里的4个byte, 共32 bit. 我们利用这些基本的type再组成更复杂的type如enum, struct, class. 前面的例子 chicken就是一个复合的类型。hen就是chicken类型的object. 但hen代表的却不再是bit, 而是age, leg 等模仿人类思维的数据和生蛋等方法。再用这种复合类型实现oo 的技术如继承,多态等 本帖最后由 天顶星人 于 28-1-2013 12:24 PM 编辑

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT


本周最热论坛帖子本周最热论坛帖子

ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 5-10-2025 10:29 PM , Processed in 0.109777 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表