Objective C 学习总结(三)面向对象
哼哼...先冷笑几声
铭刻我心的几句话:
1、没有万能钥匙,不要相信不二法门。
2、问题一定有办法解决
3、我很帅
面向对象这种东西,就像药,对症就是良药,不对症就是毒药。不迷信。
总结下看Objective-C中的面向对象。
基本理念相同,不过在书中看到了之前未看到过的概念——间接。
间接就是脱了裤子放屁,看似费事,其实有效的防止屎同时拉出来。
这和我之前接触的面向对象有些许不同,之前强调的是继承,多态,虚函数等。不过我到觉得“间接”这个概念更深入一些。
继承,虚函数,重载,基类调用派生类虚函数等等。。。
面向对象最需要也是最容易犯错误的地方,是区分有一个(have a)还是是一个(is a),有一个用成员变量,是一个用继承。
在继承之后,要重载各种虚函数。但是不同派生类的同一个虚函数,只有少量不同的代码,而大部分代码相同,这个时候该咋办呢?
发现把相同的部分单独拿出来写成函数给其它的办法也基本不可行,或者太麻烦,这个时候该咋办呢?
我没有答案。
还有,在MFC中,Doc/View结构运用了一种最简单也很重要的一种思想,就是数据显示分离。在面向对象中这种方法适用吗?
因为一个对象既包括方法也包括数据的,否则就不是一个完整的对象。这个时候又该怎么办呢?
我也没有答案。
总之,面向对象使用起来会有很多的问题。
哦,跑题了。
Objective C中的面向对象和其它没有什么大的区别。继承。
有一个好处,因为Obj-C支持通用类型id,也就是无论是基类的对象,还是派生类对象,都可以放到一个数组里
就避免了使用基类去掉派生类的指针。其它好像没啥太大的差别了。