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層抽象還覺得太直觀。