現(xiàn)在市面上各種教授面向?qū)ο蟮臅隙紩f面向?qū)ο蟮娜筇匦? 封裝,繼承和多態(tài).
這些提法是在面向?qū)ο蟮男U荒期提出的,從設計模式出來以后,人們對面向?qū)ο蟮睦斫馍钊肓撕芏?但我們的教材沒有同步跟上,這些名詞還在用,但有了些不同的理解. 下面讓我們分析面向?qū)ο蟮男掳l(fā)展.
1.封裝性(隱藏) => 到底封裝了什么?
早期談封裝性,關注點在對數(shù)據(jù)的封裝上,現(xiàn)在國內(nèi)很多教材也還是停留在這個層次.現(xiàn)在的軟件開發(fā)界的大師們已經(jīng)對封裝性拓展了很多.封裝不僅僅是指封裝數(shù)據(jù).封裝的客體可以是數(shù)據(jù),包,變化等等. 也就是說封裝X,這個X可以是不同東西。
根據(jù)封裝客體的不同可以把封裝分為:
1) 數(shù)據(jù)封裝=>隱藏數(shù)據(jù)
2) 包封裝=>隱藏包
3) 變化封裝=>隱藏變化
4) 實現(xiàn)封裝=>隱藏實現(xiàn)
....
2.繼承
繼承機制確實使面向?qū)ο蠹夹g擁有了強大的威力。可以提高更高的重用度,可以提供更強的復用能力。但隨著面向?qū)ο蠹夹g的發(fā)展,人們漸漸發(fā)現(xiàn)繼承是一把雙刃劍。繼承為開發(fā)人員帶來好處的同時,也引入一些新的問題。掌握好繼承是比較困難。
不當使用繼承可能帶來的問題:
1) 類體系過于龐大, 類爆炸
2)繼承有時破壞了封裝性
3.多態(tài)
能夠使用同一種方式引用一個類的不同繼承類,并且依據(jù)不同的繼承類獲得不同的行為。
這些提法是在面向?qū)ο蟮男U荒期提出的,從設計模式出來以后,人們對面向?qū)ο蟮睦斫馍钊肓撕芏?但我們的教材沒有同步跟上,這些名詞還在用,但有了些不同的理解. 下面讓我們分析面向?qū)ο蟮男掳l(fā)展.
1.封裝性(隱藏) => 到底封裝了什么?
早期談封裝性,關注點在對數(shù)據(jù)的封裝上,現(xiàn)在國內(nèi)很多教材也還是停留在這個層次.現(xiàn)在的軟件開發(fā)界的大師們已經(jīng)對封裝性拓展了很多.封裝不僅僅是指封裝數(shù)據(jù).封裝的客體可以是數(shù)據(jù),包,變化等等. 也就是說封裝X,這個X可以是不同東西。
根據(jù)封裝客體的不同可以把封裝分為:
1) 數(shù)據(jù)封裝=>隱藏數(shù)據(jù)
2) 包封裝=>隱藏包
3) 變化封裝=>隱藏變化
4) 實現(xiàn)封裝=>隱藏實現(xiàn)
....
2.繼承
繼承機制確實使面向?qū)ο蠹夹g擁有了強大的威力。可以提高更高的重用度,可以提供更強的復用能力。但隨著面向?qū)ο蠹夹g的發(fā)展,人們漸漸發(fā)現(xiàn)繼承是一把雙刃劍。繼承為開發(fā)人員帶來好處的同時,也引入一些新的問題。掌握好繼承是比較困難。
不當使用繼承可能帶來的問題:
1) 類體系過于龐大, 類爆炸
2)繼承有時破壞了封裝性
3.多態(tài)
能夠使用同一種方式引用一個類的不同繼承類,并且依據(jù)不同的繼承類獲得不同的行為。