模板與OOP的重要差別

經過許多天的思考,我對模板和OOP有了一些自己的認知。

這兩種方法都能夠實現多態,只不過是一個在編譯時生成對象操作,另一個是在運行時動態關聯的。

這兩種方法的優缺點在哪裏呢?

模板適合一體化的方式實現的程序,也就是自成一體不需要拓展的程序,這種程序預料到了所有的需求,因此相當於在編譯時刻就優化好了所有。

OOP實現的多態操作更適合一些需要拓展的程序,比如利用插件等方式動態載入組件,這樣的系統,通過開發一個接口容納所有的實例,是沒有辦法提前優化的,但是通過這種手段可以拓展程序功能,效率又不下降太多,實在是一種極好的 手段。

這兩種方法一種效率高,一種拓展性強。

有些答案說什麼利用模板實現的多態不具有侵入性,代碼更整潔,然而這根本不算什麼優點,這隻能說是軟件架構設計的失敗,竟然沒有提前預料到所有需求,造成了接口功能的欠缺。然而程序員有懶,不想更改原始設計。

事實上,繼承OOP的設計方式,可以將基礎服務放在超類,這樣子類拓展起來更加容易代碼更加簡潔,子類不需要關注那麼多細節,這些細節由超類在上游就已經配置好了,子類默認啓用這些特性。這纔是繼承的正確使用方式。

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