1.面向?qū)ο笥脕碜鍪裁?怎么實現(xiàn)?目的是什么?
2.面向?qū)ο笈c三層架構(gòu)的關(guān)系
1。面向?qū)ο蟮哪康暮途唧w的用途
我們天天在喊著面向?qū)ο蟮某绦蚍治觯嫦驅(qū)ο蟮某绦蛟O(shè)計,是否做到了面向?qū)ο竽兀?br />
為什么要使用面向?qū)ο蟮姆治鲈O(shè)計,在以前都是使用面向過程的程序設(shè)計,面向過程認為每個事物都是相互關(guān)聯(lián)的,邏輯劃分的很明確,先是什么,再是什么,最后是什么,每個環(huán)節(jié)都是確定的,然而當系統(tǒng)變得越來越復雜,越來越多的因素需要考慮,超出了我們所能考慮的到的問題之后,修改一個小地方,可能影響至整個系統(tǒng),為了解決這種復雜性,從而誕生了面向?qū)ο?br />
面向?qū)ο缶褪菫榱藰?gòu)建更大的更復雜的系統(tǒng)而誕生的,面向?qū)ο蟮姆治稣J為每個對象之間都是相互獨立的,相互不影響的,每個對象都有其職責,這個職責是確定好了的,從而在構(gòu)建系統(tǒng)的時候我們并不關(guān)心這些對象是如何相互關(guān)聯(lián)的,我們并不期望去控制這個場景,我們只是抽象出這個對象,從而在某個特定的規(guī)則或條件下去組建我們所需要的系統(tǒng),當我們的系統(tǒng)改變之后,我們的這些對象依然存在,我們只是換了一種規(guī)則,從而達到了類的復用
面向?qū)ο蟮木唧w來說就是繼承、封裝、多態(tài)。
面向?qū)ο笞畲蟮暮锰幘褪菑陀煤瓦m于變化。
——復用:我們的兩個應(yīng)用程序需要實現(xiàn)相同的功能,例如登陸
——適于變化:在原來設(shè)計的基礎(chǔ)之上,易于擴展
面向?qū)ο蟮碾y點在于抽象,如何抽象出類的職責,這個類具有哪些屬性,具有哪些方法。
2。面向?qū)ο笈c三層架構(gòu)的關(guān)系
面向?qū)ο蠛腿龑蛹軜?gòu)好像沒有關(guān)系,因為面向?qū)ο笫且环N思想,而三層架構(gòu)可以說是一種模式,這里來談它們之間的關(guān)系只是站在一個抽象層次的角度來看待這個問題
三層架構(gòu)就是用不同的抽象層次或者是角度來進行抽象的,主要的是BLL層(邏輯業(yè)務(wù)層)和DAL層(數(shù)據(jù)層)
——開始總是認為如果我們僅僅需要的只是單純的一份數(shù)據(jù),那么我們何必還要組織一個BLL的類,何不直接調(diào)用DAL的類呢?其實這是一個更高的抽象層次的問題,在DAL中或許會返回很多的數(shù)據(jù),但是在BLL之中我們可以組織一些更高層次的類。例如:BLL中有一個銀行業(yè)務(wù)類,會需要很多數(shù)據(jù),而這些數(shù)據(jù)又是多個DAL中的類返回的結(jié)果,從而我們只需要了解BLL中高層次的抽象,而不用去管這個具體的數(shù)據(jù)從何而來,當我們需要修改一個的時候,我們只需要修改DAL中的數(shù)據(jù)即可
三層架構(gòu)是將各種職責分割開來,體現(xiàn)職責的單一性,在其中也體現(xiàn)了一些面向?qū)ο蟮乃枷,這也就引出了設(shè)計模式,從而三層架構(gòu)體現(xiàn)了面向?qū)ο蟮乃枷?