kernel中使用了很多oo的编程设计。比如vfs。
为什么要使用oo设计呢。
在c语言中,常见有很多switch case
switch
case a:
xx
case b:
xx
case c :
xx
...
没增加一种case x,就要在很多地方,针对x进行多处的增改。
好了,定义一个抽象的方法, xx回调函数。
在任意地方,凡是要switch case的地方,直接xx->func即可。再也不用switch case了,对任意多/少的情况都能轻松,无痕处理。
这是个不大不小的技巧,往高处说,就是体现了抽象。往低处说,其实也没啥,就一个简化switch case的技巧而已。
就这么简单的一点技巧,被鼓吹,给扩充,硬生生拉成了C++。还有容器,stl什么的。真是吓尿了。所以我觉得好无聊。现实中谁用那么多层抽象啊。
计算机技术是解决实际问题的技术,能抽象到2,3层就不错了。你以为是在玩数学呢,搞个10层抽象还觉得太直观。