面向對象編程的弊端是什麼?

找不到星期八


這是一個非常好的問題,作為一名IT從業者,同時也出版過編程書籍,所以我來說說我的看法。

首先,面向對象編程依然是當前程序開發的主要方式之一,不論是Java、C#還是Python都是比較典型的面向對象編程語言,而且從當前的軟件開發體系來看,未來很長一段時間內,面向對象編程都將依然是程序開發的主流開發方式之一。

說到面向對象編程的弊端,可以從以下三個方面來進行討論:

第一:過度抽象。“抽象”是面向對象編程的核心,通過“抽象”可以構建出非常複雜的軟件產品,所以面向對象編程語言非常適合一些大型軟件項目的開發,實際上面向對象編程主要就是為了適應大規模軟件開發場景。

在使用面向對象編程的過程中,抽象的程度是很難把握的,這也是導致面向對象編程複雜度較高的重要原因之一,抽象不足和過度抽象都是面向對象編程中非常常見的問題,抽象不足會導致軟件的擴展性大幅下降,而抽象過度又會導致軟件複雜度全面上升。

第二:模塊化。模塊化一直是面向對象編程所面臨的較大挑戰之一,面向對象編程由於自身的抽象程度比較高,所以在進行模塊化的過程中就會遇到各種障礙,比如Java的模塊化問題一直在困擾開發人員。為了解決面向對象的模塊化問題,各種開發框架被提出,比如OSGI就是比較典型的代表,實際上AOP編程方式的提出,一個重要的原因也是為了彌補面嚮對象語言的模塊化問題。

第三:安全。安全永遠是面向對象編程需要重點關注的核心問題之一,雖然不同的編程語言對於安全都有比較全面的考慮,但是由於面向對象編程語言自身的開放性,安全方案本身的複雜程度也非常高,比如Java的安全機制就非常複雜,而這個複雜的規則背後,往往會限制編程語言的應用邊界。

我從事互聯網行業多年,目前也在帶計算機專業的研究生,主要的研究方向集中在大數據和人工智能領域,我會陸續寫一些關於互聯網技術方面的文章,感興趣的朋友可以關注我,相信一定會有所收穫。

如果有互聯網、大數據、人工智能等方面的問題,或者是考研方面的問題,都可以在評論區留言,或者私信我!


IT人劉俊明


沒什麼弊端,學就是


千里和他的軟件測試


現實中沒有對象


分享到:


相關文章: