面向对象起源和使用


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层抽象还觉得太直观。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章