freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[工學(xué)]4設(shè)計模式十八篇-資料下載頁

2025-01-18 13:15本頁面
  

【正文】 口類:public interface Work{ public void brush()。 //刷油漆}因為油漆師傅和油漆徒弟的任務(wù)是刷油漆,因此他們要對Work接口進行實現(xiàn):A:油漆徒弟刷油漆的工作主要是由油漆徒弟來完成,所以我們把油漆徒弟定義成Brusher(油漆師傅在一旁說:徒弟嗎,就是要多干活。,油漆徒弟小聲嘀咕:多你個頭。)。public class Brusher implements Work{ public void brush() { (刷油漆)。 }}B:油漆師傅我們把油漆師傅定義成Decorator。public class Decorator implements Work{ private Work work。//油漆師傅的工作被放置在這個List中 private ArrayList prework = new ArrayList()。//油漆師傅的默認工作 public Decorator(Work work) { = work。 (買油漆)。 (調(diào)油漆)。 } public void brush() {//刷油漆, 油漆師傅也要實現(xiàn)此方法 newWork()。 //當(dāng)油漆師傅接到活,就開始一個新的工作 } //新的工作 public void newWork() { preWork()。 //油漆師傅做的前期輔助工作 ()。 //讓徒弟干的刷油漆的工作 } //油漆師傅做的前期輔助工作 public void preWork() { ListIterator listIterator = ()。 while (()) { ( ( (String) (())) + 完成)。 } }編寫測試類:public class test { public static void main(String args[]) { Work bursher = new Brusher()。 Work decorator = new Decorator(bursher)。 ()。 //我把活交給油漆師傅,油漆師傅下來再把實際刷油漆的工作指派給油漆徒弟干 } }說明:A:代碼只用來學(xué)習(xí)Decorator模式,要運行的話,必須要做一點改動。B:在這過程中,我只和油漆師傅打交道,具體的刷油漆那是由油漆師傅和油漆徒弟之間的事,我是不用關(guān)心的。C:使用Decorator的理由是:即插即用的方法,在運行期間決定何時增加何種功能.設(shè)計模式之Visitor——送禮篇今年過年不收禮,收禮只收腦白金。聽到這暗示性的廣告詞,我的腦袋突然一亮。因為最近因為要辦某事,必須要給單位的領(lǐng)導(dǎo)要表示一下。到底送什么,還真讓人頭痛,還好有腦白金,奶奶的。,腐敗啊,罪過!首先要對送禮的對象進行分析,單位有兩個領(lǐng)導(dǎo),一正,一副。因此給不同的領(lǐng)導(dǎo)送的禮也是不同的(哈,收入要和產(chǎn)出成正比嗎),好了言歸正傳。在這里,先把領(lǐng)導(dǎo)定義成一個接口類:public interface Leader{//主要任務(wù)收visitor(拜訪者)的禮public void accept(Visitor visitor)。 }在把拜訪者定義成另一個接口類:public interface Visitor{ public void visitFirstHand(FirstHand first)。 //拜訪一把手(帶的禮物) public void visitSecondHand(SecondHand second)。 //拜訪二把手(帶的禮物) public void visitCollection(Collection collection)。 //判斷是拜訪一把手還是二把手}下面我們要對這兩個接口進行實現(xiàn):A:一把手public class FirstHand implements Leader { private String value。 //注意此處是String public FirstHand (String string) {//一把手的構(gòu)造函數(shù) value = string。 } public String getValue() { //獲得禮物 return value。 }//定義accept的具體內(nèi)容 這里是很簡單的一句調(diào)用 public void accept(Visitor visitor) { (this)。 //接收拜訪人送的禮 }}B:二把手public class SecondHand implements Leader { private Float value。 //注意此處是Float public SecondHand (Float string) {//二把手的構(gòu)造函數(shù) value = string。 } public Float getValue() { //獲得禮物 return value。 }//定義accept的具體內(nèi)容 這里是很簡單的一句調(diào)用 public void accept(Visitor visitor) { (this)。 //接收拜訪人送的禮 }}C:拜訪人(我)public class visitMe implements Visitor{  public void visitCollection(Collection collection) { Iterator iterator = ()。 while (()) { Object o = ()。 if (o instanceof Leader) //判斷要送給哪個領(lǐng)導(dǎo) ((Leader)o).accept(this)。 //不同的領(lǐng)導(dǎo)進入不同的實現(xiàn)類 } } public void visitFirstHand (FirstHand first) { (送的禮是:+ ())。 } public void visitSecondHand (SecondHand second) { (送的禮是: + ())。 }}編寫測試類:public class test { public static void main(String args[]){ Visitor visitor = new visitMe ()。 FirstHand present = new FirstHand (十盒腦白金)。 (present)。 Collection list = new ArrayList()。 (new FirstHand (十盒腦白金))。 (new SecondHand (new Float(一斤小點心)))。 //為了說明不同,如要運行,要做類型轉(zhuǎn)換。 (list)。 } 說明:A:代碼只用來學(xué)習(xí)Visitor模式,要運行的話,必須要做一點改動。B:FirstHand,SecondHand只是一個個具體實現(xiàn),實際上還可以拓展為更多的實現(xiàn),整個核心奧妙在accept方法中,在遍歷Collection時,通過相應(yīng)的accept方法調(diào)用具體類型的被訪問者。這一步確定了被訪問者類型C:使用訪問者模式是對象群結(jié)構(gòu)中(Collection) 中的對象類型很少改變,也就是說領(lǐng)導(dǎo)很少變化。設(shè)計模式之Builder——購機篇最近想買一臺電腦用于學(xué)習(xí),因此我就去了一家電腦公司,經(jīng)過分析,選用了下面的配置:CPU 主板 Intel硬盤 80G。買過電腦的朋友可能都知道,我們選好配置后,電腦公司就會有專門的組裝師(Assembler)來給我們裝機。電腦(Computer)就是由這些東西(我們稱之為Part)組成的。學(xué)過經(jīng)濟學(xué)的朋友可能都知道,如果這臺組裝好的電腦不賣掉,那它就不是商品(Commodity),而僅僅是臺電腦而已。 在這里,我們先定義商品(Commodity)類:public class Commodity { String modity =。 public Commodity (Part partA,Part partB,Part partC) {//由各個部分組成 this. modity = +\n。 this. modity = product++\n。 this. modity = product+。 (我的機器配置為:\n+ modity)。 }} 下來我們再定義電腦的組成部分(Part)類:public class Part { String part=。 public Part(String part){ = part。 }} 我們把電腦(Computer)定義成一個接口類:public interface Computer {//組裝部件A 比如CPU void buildPartA()。//組裝部件B 比如主板 void buildPartB()。 //組裝部件C 比如硬盤 void buildPartC()。//返回最后組裝成品結(jié)果 (返回最后組裝好的電腦)//成品的組裝過程不在這里進行,而是由組裝師(Assembler)類完成的。//從而實現(xiàn)了過程和部件的分離 Product getProduct()。} 定義電腦的組裝師(Assembler)類:public class Assembler { private Computer puter。 public Assembler(Computer puter) { //主要任務(wù)是裝電腦 = puter。 }// 將部件partA partB partC最后組成復(fù)雜對象//這里是將主板、CPU和硬盤組裝成PC的過程 public void construct() { ()。 ()。 ()。 }} 我的電腦是對電腦(Computer)接口的具體實現(xiàn),因此再定義MyComputer實現(xiàn)類:public class MyComputer implements Computer { Part partA, partB, partC。 public void buildPartA() { partA = new Part( CPU)。 } public void buildPartB() { partB = new Part(Inter 主板)。 } public void buildPartC() { partC = new Part(80G硬盤)。 } public Product getProduct() {//返回最后組裝成品結(jié)果 Commodity myComputer = new Commodity (partA,partB,partC)。 return myComputer。 }} 編寫測試類:public class MyComputerTest { public static void main(String args[]){ MyComputer myComputer = new MyComputer()。 //組裝我的電腦 Assembler assembler = new Assembler( myComputer )。 //派某一位組裝師 ()。 //組裝師進行組裝過程 Commodity modity = ()。 //賣給我的電腦(商品) }}說明:A:代碼只用來學(xué)習(xí)Builder模式,要運行的話,必須要做一點改動。B:將一個復(fù)雜對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。因為每個人的電腦配置可能都是不同的。C:我們使用Builer是為了構(gòu)建復(fù)雜對象的過程和它的部件解耦,也就是說將過程分的盡可能細,而且每一部分只用完成自己的功能即可(各司其職嘛)。設(shè)計模式之Factory——買貨篇今天老婆讓我去市場買一些水果,具體買什么自己定(哈,老婆放放權(quán)了?。淼绞袌?,我發(fā)現(xiàn)主要有一些水果:蘋果(Apple),葡萄(Grape)和鴨梨(Pear)。到底買什么好呢?我一陣思量。俗話說:飯后一只煙,賽過活神仙。飯后吃蘋果,西施見我躲。為了老婆的漂亮,我決定買蘋果。好,言歸正傳,開始買吧! 主要有以下三種Factory模式:Simple Factory模式:專門定義一個類來負責(zé)創(chuàng)建其它類的實例,被創(chuàng)建的實例通常都具有共同的父類。Factory Method模式:將對象的創(chuàng)建交由父類中定義的一個標準方法來完成,而不是其構(gòu)造函數(shù),究竟應(yīng)該創(chuàng)建何
點擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1