面向?qū)ο笪覀冋務(wù)摰淖疃嗟氖鞘裁矗课夜烙?jì)應(yīng)該是經(jīng)常掛在嘴邊的封裝杭抠、繼承脸甘、多態(tài)了。但是偏灿,這些方法說白了都是針對業(yè)已分析規(guī)劃好的類的一種具體的實(shí)現(xiàn)方式丹诀,可以把封裝、繼承翁垂、多態(tài)歸結(jié)到工具的范疇铆遭。
通過上面的圖,我們很容易的可以使用封裝沿猜、繼承枚荣、多態(tài)等方法實(shí)現(xiàn)各個功能模塊。現(xiàn)在有一個問題啼肩,這張圖是怎么來的橄妆?為什么要劃分成這幾個類衙伶,而不是另外的幾個類?有什么依據(jù)害碾?我們可以使用諸如單一職責(zé)矢劲,迪米特法則,針對接口編程等各種理由來解釋慌随,但是這依舊沒有解決類為什么要這么劃分的問題芬沉。這個問題目前暫時(shí)還回答不了,后面會逐漸提到儒陨。
現(xiàn)在有個非常重要的問題花嘶,那就是如何獲取現(xiàn)實(shí)世界到計(jì)算世界的映射了。要把現(xiàn)實(shí)世界的哪些東西映射進(jìn)來蹦漠,如何映射椭员?這就是所謂的抽象了。抽象首先又層次的問題笛园,哪些東西需要在抽象的時(shí)候考慮隘击?哪些東西不要考慮?比如對淘寶網(wǎng)站做一個高層次的抽象研铆,就是一句話的描述埋同,一個物品交易網(wǎng)站。如果你把抽象層次降低就可以看到訂單處理系統(tǒng)棵红、物流跟蹤系統(tǒng)凶赁、客服系統(tǒng)等等。這就像是從遠(yuǎn)處眺望逆甜、近處觀察虱肄、放大鏡、顯微鏡...等等一系列的過程了交煞。
抽象也有角度的問題咏窿,從不同的角度出發(fā)你認(rèn)識到的東西是不一樣的,我自己感覺其實(shí)我們抽象完成的類是真實(shí)世界物體在計(jì)算機(jī)世界中的投影素征,被抽象的東西是真實(shí)存在的集嵌,無論是有形的物還是無形的過程,我們其實(shí)關(guān)心的只是與我們系統(tǒng)有關(guān)系的那部分樣貌御毅。
通過對現(xiàn)實(shí)世界的業(yè)務(wù)建模根欧、概念建模、系統(tǒng)建模端蛆、設(shè)計(jì)建模咽块,層層遞進(jìn)抽象,摒棄系統(tǒng)不關(guān)心的方面欺税,最后在計(jì)算機(jī)世界中搭建起一個“微縮的小世界”侈沪。
現(xiàn)在我們還有一個問題,如何證明我們的抽象是好的晚凿?因?yàn)橛袝r(shí)候自己問自己為什么要這么做亭罪,不那么做,都回答不上來歼秽,只能模棱兩可的告訴自己這也許就是經(jīng)驗(yàn)吧应役!