面向對象起源和使用


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



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