java中為什么vo不可以繼承do?
技術(shù)上這樣寫沒問題。
概念上,一個(gè)vo是一個(gè)do嗎?
如果不滿足X is a Y的關(guān)系,就不要讓X繼承Y。
那為啥技術(shù)上可以,不一定就可以寫呢?
因?yàn)榧夹g(shù)上可以指的是給計(jì)算機(jī)可以執(zhí)行。
寫代碼還要考慮可讀性,性能,可擴(kuò)展性,可維護(hù)性,概念一致性等等等等。
特別是概念一致性。我認(rèn)為一個(gè)系統(tǒng)最大(不是損失最大,而是處理難度最大)的bug就是概念不一致。
概念不一致,則后面極其容易發(fā)展出各種各樣的bug,而且這樣的bug特別難以修復(fù)。
你修好了這一端,另一端就出問題了,修好了另一端,這一端又出問題了。
而且為了修復(fù)這樣的問題,必然會(huì)搞出一些令人費(fèi)解的代碼,后面的人(包括自己),再去維護(hù)它,那簡直就是一場噩夢(mèng)。
所以,如果X is not a Y,那就不要為了一時(shí)的省事強(qiáng)行建立繼承關(guān)系。
標(biāo)簽:Java