天天看小說

第156章

小A:“又應(yīng)該怎樣去理解模板方法模式與對象的封裝性?”

大B:“面向?qū)ο蟮娜筇攸c(diǎn):繼承,封裝,多態(tài)。對象有內(nèi)部狀態(tài)和外部的行爲(wèi)。封裝是爲(wèi)了信息隱藏,通過封裝來維護(hù)對象內(nèi)部數(shù)據(jù)的完整性。使得外部對象不能夠直接訪問一個對象的內(nèi)部狀態(tài),而必須通過恰當(dāng)?shù)姆椒ú拍茉L問。在java語言中,採用給對象屬性和方法賦予指定的修改符(public,protected,private)來達(dá)到封裝的目的,使得數(shù)據(jù)不被外部對象惡意的訪問及方法不被錯誤調(diào)用從而破壞對象的封裝性。降低方法的訪問級別,也就是最大化的降低方法的可見度是一種很重要的封裝手段。最大化降低方法的可見度除了可以達(dá)到信息隱藏外,還能有效的降低類之間的耦合度,降低一個類的複雜度。還可以減少開發(fā)人員發(fā)生的的錯誤調(diào)用。一個類應(yīng)該只公開外部需要調(diào)用的方法。而所有爲(wèi)公開方法服務(wù)的方法都應(yīng)該聲明爲(wèi)protected或private。如是一個方法不是需要對外公開的方法,但是它需要被子類進(jìn)行擴(kuò)展或調(diào)用。那麼把它定義爲(wèi)protected。否則應(yīng)該爲(wèi)private。顯而易見,模板方法模式中的聲明爲(wèi)abstract的基本操作都是需要迫使子類去實(shí)現(xiàn)的,它們僅僅是爲(wèi)模板方法placeOrder服務(wù)的。它們不應(yīng)該被AbstractOrder所公開,所以它們應(yīng)該protected。”

代碼:

protectedabstractintgetOrderItemPrice(OrderItemorderItem);

protectedabstractintgetSpendingLimit(intcustomerId);

protectedabstractintsaveOrder(intcustomerId,inttotal,ListorderItemList);

rendercode();

模板方法模式中,基本方法應(yīng)該聲明爲(wèi)protctedabstract。

第30章第6章第182章第82章第22章第23章第15章第9章第192章第134章第211章第45章第210章第182章第108章第101章第58章第214章第157章第21章第196章第73章第101章第9章第201章第44章第65章第63章第221章第150章第56章第125章第216章第8章第8章第205章第50章第145章第90章第205章第63章第169章第161章第50章第202章第42章第114章第125章第182章第70章第189章第155章第107章第227章第181章第191章第89章第49章第104章第62章第121章第26章第200章第26章第22章第70章第207章第103章第84章第66章第61章第74章第34章第80章第67章第27章第121章第33章第2章第78章第126章第56章第185章第120章第167章第68章第88章第133章第101章第95章第226章第160章第85章第133章第47章第71章第98章第148章第161章第39章
第30章第6章第182章第82章第22章第23章第15章第9章第192章第134章第211章第45章第210章第182章第108章第101章第58章第214章第157章第21章第196章第73章第101章第9章第201章第44章第65章第63章第221章第150章第56章第125章第216章第8章第8章第205章第50章第145章第90章第205章第63章第169章第161章第50章第202章第42章第114章第125章第182章第70章第189章第155章第107章第227章第181章第191章第89章第49章第104章第62章第121章第26章第200章第26章第22章第70章第207章第103章第84章第66章第61章第74章第34章第80章第67章第27章第121章第33章第2章第78章第126章第56章第185章第120章第167章第68章第88章第133章第101章第95章第226章第160章第85章第133章第47章第71章第98章第148章第161章第39章
主站蜘蛛池模板: 迭部县| 汝州市| 光山县| 望江县| 旺苍县| 辽阳县| 九龙坡区| 九龙城区| 娱乐| 镇坪县| 鹿泉市| 高雄市| 中宁县| 榕江县| 托里县| 花莲市| 柏乡县| 漳州市| 宁陵县| 神木县| 宝兴县| 铅山县| 朝阳区| 盐边县| 海安县| 卢龙县| 扶绥县| 兰西县| 秀山| 富平县| 将乐县| 商洛市| 岱山县| 禄丰县| 九寨沟县| 宁阳县| 措美县| 汤原县| 从化市| 靖边县| 高碑店市|