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

正文內(nèi)容

java23種設(shè)計(jì)模式(總結(jié))-資料下載頁(yè)

2025-06-25 06:58本頁(yè)面
  

【正文】 要求該命令執(zhí)行這個(gè)請(qǐng)求。 *er 知道如何實(shí)*與執(zhí)行一個(gè)請(qǐng)求相關(guān)的操作。任何類都可能作為一個(gè)接收者。類圖例子Command public abstract class *ommand { protecte* Receiver receiver。 public Command(Receiver re*eiver) { = receiver。 } public abstract *oid execute()。}ConcreteCommand public class CommandImpl extends Comman* { public CommandImpl(Receiv*r receiver) { super(receiver)。 } pu*lic void *xecute*) { ()。 }}Invoker public cl*ss Invoker { private Command mand。 pub*ic void setCommand(Command c*mmand) { = mand。 } public void execute*) { ()。 }}Receiver public class Receiver { public void receive() { S*(This is Receive class!)。 }}Test publ*c class Test { pub*ic static void main*String[] args) { R*ceiver rec = new Receiver()。 Command cmd = n*w CommandImpl(rec)。 Invoker i = new Invoker()。 *and(cmd)。 *()。 }}result This is Receive class! 解釋器模式 給定一個(gè)語(yǔ)言,定義它的文法的一種表示,并定義一個(gè)解釋器,這個(gè)解釋器使用該表示來(lái)解釋語(yǔ)言中的句子。適用性 當(dāng)有一個(gè)語(yǔ)言需要解釋執(zhí)行,并且你可將該語(yǔ)言中的句子表示為一個(gè)抽象語(yǔ)法樹(shù)時(shí),可使 用解釋器模式。而當(dāng)存在*下情況時(shí)該模式效果最好: ,文法的*層次變得龐大而無(wú)法管理。 ,而是首先將它們轉(zhuǎn)換成另一種形式。 參與者 (抽象表達(dá)式) 聲明一個(gè)抽象的解釋操作,這個(gè)接口為抽象語(yǔ)法樹(shù)中所有的節(jié)點(diǎn)所共享。 (終結(jié)符表達(dá)式) 實(shí)現(xiàn)與文法中的終結(jié)符相關(guān)聯(lián)的解釋操作。 一個(gè)句子中的每個(gè)終結(jié)符需要該類的一個(gè)實(shí)例。 *nterminalExpression(非終結(jié)符表達(dá)式) 為文法中的非終結(jié)符實(shí)現(xiàn)解釋(Interpret)操作。 (上下文) 包含解釋器之外的一些全局信息。 (客戶) 構(gòu)建(或被給定)表示該文法定義的語(yǔ)言中*個(gè)特定的句子的抽象*法樹(shù)。 該抽象語(yǔ)法樹(shù)由NonterminalExpression和TerminalExpression的實(shí)例裝配而成。 調(diào)用解*操作。類圖例子AbstractExpression pu*lic abstract class Expression { abstract void interpret(Context ctx)。}Expression public class AdvanceExpressio* extends Expression { void interpr*t(Context ctx) { (這是高級(jí)解析器!)。 }}public class SimpleExpression extends Expressio* { void interpret(*ontext ctx) { *tln(這是普通解析器!)。 }}Context public class Co*text { private S*ring content。 *rivate List list = new ArrayList()。 public void setContent(String content) { = content。 } pu*lic String getContent() { return *ent* } public void add(Expression ep*) { (eps)。 } public List getList() { return list。 }}Test public class Test { public static void main(String[] args) { Context *tx = new Context()。 ctx.*dd(new SimpleExpression())。 (new AdvanceExpression())。 (new SimpleExpression())。 for *Expression eps : *st()) { *ctx)。 } }}res*lt *是普通解析器!這是高級(jí)解析器!*是普通解析器! 迭代器模式 給定一個(gè)語(yǔ)言,定義它的文法的一種表示,并定義一個(gè)解釋器,這個(gè)解釋器使用該表示來(lái)解釋語(yǔ)言中的句子。適用性 。 。 *統(tǒng)一的接口(即,支持多態(tài)迭代)。 參與者 迭代器定義訪問(wèn)和遍歷元素的接口。 具*迭代器實(shí)現(xiàn)迭代器接口。 對(duì)該聚合遍歷時(shí)跟蹤當(dāng)前位置。 聚合定義創(chuàng)建相應(yīng)迭代器*象的接口。 具體聚合實(shí)現(xiàn)創(chuàng)建相應(yīng)迭代器的接口,該操作返回ConcreteIterator的一個(gè)適當(dāng)?shù)膶?shí)例.類圖例子Iterator public interface Iterator { Object nex*()。 void first()。 voi* last()。 boolean hasNext()。}ConcreteIterator public class IteratorImpl implements It*rator { private List list。 private int index。 public Ite*atorImpl(List list* { index = 0。 = list。 } public void first() { index = 0。 } publ*c void last() { index = ()。 } public Object next() { Object obj = (index)。 index++。 ret*rn obj。 } public boolean hasNext() { return index ()。 }}Aggregate p*blic interface List { Iterator iterator()。 Object get(int index)。 int *etSize()。 void add(Object ob*)。}ConcreteAggregate public class ListImpl implements List { private Object[] list。 private int index。 private int size。 public ListImpl() { index = 0。 size = 0。 list = new Object[100]。 } public Iterator iterator() { return new IteratorImpl(this)。 } public O*ject get(int index) { return list[index]。 } public int getSize() { return 。 } public void add(Object obj) { list[index++] = obj。 size++。 }}Test public class Test { public stati* void main(String[] arg*) { List list = new ListImpl()。 (a)。 (b)。 (c)。 //第一種迭代方式 Iterator it = ()。 while (**Next()) { S*(())。 } Syst*(=====)。 //第二種迭代方式 for (int i = 0。 i ()。 i++) { ((i))。 } }}result abc=====abc 中介者模式 用一個(gè)中介對(duì)象來(lái)封裝一系列的對(duì)象交互。中介者使各對(duì)象不需要顯式地相互引用,從而使其耦合松散,而且可以獨(dú)立地改變它們之間的交互。適用性 。產(chǎn)生的相互依賴關(guān)系結(jié)構(gòu)混亂且難以理解。 ,導(dǎo)致難以復(fù)*該對(duì)象。 ,*又不想生成太多的子類。 參與者 中介者定義一個(gè)接口用于與各同事(Colleague)對(duì)象通信。 具*中介者通過(guò)協(xié)調(diào)各同事對(duì)象實(shí)現(xiàn)協(xié)作行為* 了解并維護(hù)它的各個(gè)同事。 每一個(gè)同事類都知道它的中介者對(duì)象。 每一個(gè)同事對(duì)象在需與其他的同事通信的時(shí)候*與它的中介者通信類圖例子Mediator public abstract class Mediator { public abstract void notice(String content)。}ConcreteMediator public *lass ConcreteMediator e*tends Mediator { private ColleagueA ca。 pri*ate ColleagueB cb。 public ConcreteMediator() { ca = new ColleagueA()。 cb = new Col*eagueB()。 } public void no*ice(String content) { if (co*(boss)) { //老板來(lái)了, 通知員工A ca*action()。 } if ((client)) { //客戶來(lái)了, *知前臺(tái)B ()。 } }}Colleagueclass public class ColleagueA extends *olleague { public void action(*
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1