在說設(shè)計(jì)模式之前,得先談?wù)劽嫦驅(qū)ο笥嚷J紫任覀兊酶闱宄c(diǎn)面向?qū)ο蟮母拍钕庇眩嫦驅(qū)ο笃鋵?shí)是對(duì)現(xiàn)實(shí)世界的理解和抽象的方法,也就是在計(jì)算機(jī)世界里去模擬現(xiàn)實(shí)世界的一種編程方法产捞,具體是利用封裝醇锚、繼承、多態(tài)的方法去建立模型坯临。世界是什么焊唬?世界就是每個(gè)事物是獨(dú)立完整的,并且事物間不斷進(jìn)行溝通的一個(gè)整體看靠。先來看看面向?qū)ο蟆?/p>
封裝
人是一個(gè)封裝的整體赶促,包含姓名、性別挟炬、年齡鸥滨、愛好等基本屬性,以及設(shè)置谤祖、獲取姓名婿滓、性別、年齡粥喜、愛好等行為凸主,當(dāng)然可以把密碼隱藏在心里不告訴任何人。他人要想知道你的興趣愛好额湘,只需要問以下你即可卿吐,而你不用將自己的所有暴露給他人,然后別人隨意去分析你缩挑。封裝可以使事物內(nèi)部結(jié)構(gòu)穩(wěn)定形成一個(gè)整體但两,只暴露公開的方法。
繼承
每個(gè)人的基因都遺傳自爸媽供置,當(dāng)然自己也會(huì)產(chǎn)生不同于爸媽的特征谨湘。如果不用繼承,則會(huì)產(chǎn)生很多相同的代碼。實(shí)際上繼承違背了封裝紧阔,而且父類增加新方法也會(huì)影響到子類坊罢。
多態(tài)
多態(tài)要用到繼承。所謂多態(tài)就是指程序中定義的引用變量所指向的具體類型和通過該引用變量發(fā)出的方法調(diào)用在編程時(shí)并不確定擅耽,而是在程序運(yùn)行期間才確定活孩,即一個(gè)引用變量倒底會(huì)指向哪個(gè)類的實(shí)例對(duì)象,該引用變量發(fā)出的方法調(diào)用到底是哪個(gè)類中實(shí)現(xiàn)的方法乖仇,必須在由程序運(yùn)行期間才能決定憾儒。因?yàn)樵诔绦蜻\(yùn)行時(shí)才確定具體的類,這樣乃沙,不用修改源程序代碼起趾,就可以讓引用變量綁定到各種不同的類實(shí)現(xiàn)上,從而導(dǎo)致該引用調(diào)用的具體方法隨之改變警儒,即不修改程序代碼就可以改變程序運(yùn)行時(shí)所綁定的具體代碼训裆,讓程序可以選擇多個(gè)運(yùn)行狀態(tài),這就是多態(tài)性蜀铲。
比如你是一個(gè)酒神边琉,對(duì)酒情有獨(dú)鐘。某日回家發(fā)現(xiàn)桌上有幾個(gè)杯子里面都裝了白酒记劝,從外面看我們是不可能知道這是些什么酒变姨,只有喝了之后才能夠猜出來是何種酒。你一喝隆夯,這是劍南春钳恕、再喝這是五糧液别伏、再喝這是酒鬼酒