学 java 时,学到 interface
这东西取代了 C 的函式指标
同事在用了后觉得不错
反而在 C++,再也不用函式指标了
大量的使用 interface
说真的一开始给我带来很大的门槛
但等我也学 Java,被逼着学会后
的确觉得这样的架构还挺美妙的~
怎么说呢...
嗯,我一次用一整组函式指标组成的 interface
而不是一个一个指标去注册
这样在多个函式具有一种架构时,更可以看出它们的关系
VC 的 interface 其实就和 class 一样
只是 RD 要有自律,不要在 base class 去 implement 里面的函式
保留起来做纯虚拟 class, 那就是 interface 了
VC 支援多重继承, Java 不支援;但 Java 可以"继承" interface
在我看来就是这样,所以 继承 两字我要打引号
也许有人会说是 implement 吧..
到了 Object C, 看到 protocol
看来看去它就和 java 的 interface 一样嘛
(如果要说不一样,那我就学不会它了)
可是它的检查好松喔..
1.我宣告我的 class 使用某 protocol
然后不实作它
Compile OK!!
2.我不宣告我的 class 使用某 protocol,但我实作它
然后在某个要求传入实作 protocol 物件的场合,把我这个 class 物件传进去
Compile 也 OK!!
Holy 谢~
你给我这样在 C++ or Java 玩玩看
Compiler 一定不会饶过你的
结果 Object C 把这轻轻放下了
至此,我只好这样去理解了:
protocol, 是提高可读性而已啊,让你知道 "这里有个规矩可以遵守"
其实你就把它当个 base class 看就好
你要不要在你的 class 里,打个 < > 符号,把 protocol 写在里面宣告
宣告后要不要实作
都随便你了啊~~