為什么在Java編程中的繼承多數是有害的 (1)

發表于:2008-05-06來源:作者:點擊數: 標簽:javaJAVAJava繼承
關鍵字: Java 編程 繼承多數好的設計者象躲避瘟疫一樣來避免使用實現繼承(extends關系)。實際上80%的代碼應該完全用interfaces寫,而不是通過extends?!癑ava設計模式”一書詳細闡述了怎樣用接口繼承代替實現繼承。這篇文章描述設計者為什么會這么作。 Exten
關鍵字:Java編程 繼承多數好的設計者象躲避瘟疫一樣來避免使用實現繼承(extends 關系)。實際上80%的代碼應該完全用interfaces寫,而不是通過extends?!癑ava設計模式”一書詳細闡述了怎樣用接口繼承代替實現繼承。這篇文章描述設計者為什么會這么作。 

Extends是有害的;也許對于Charles Manson這個級別的不是,但是足夠糟糕的它應該在任何可能的時候被避開?!癑AVA設計模式”一書花了很大的部分討論用interface繼承代替實現繼承。 

好的設計者在他的代碼中,大部分用interface,而不是具體的基類。本文討論為什么設計者會這樣選擇,并且也介紹一些基于interface的編程基礎。 

接口(Interface)和類(Class)? 

一次,我參加一個Java用戶組的會議。在會議中,Jams Gosling(Java之父)做發起人講話。在那令人難忘的Q&A部分中,有人問他:“如果你重新構造Java,你想改變什么?”?!拔蚁霋仐塩lasses”他回答。在笑聲平息后,它解釋說,真正的問題不是由于class本身,而是實現繼承(extends) 關系。接口繼承(implements關系)是更好的。你應該盡可能的避免實現繼承。 

失去了靈活性 

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97