最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

作業(yè)12(模板方法模式) 窗體頂端 ? 1簡答(1分) ? ? 簡述模板方法模式的概念,并畫

2023-04-12 19:06 作者:酸奶公園  | 我要投稿

作業(yè)12(模板方法模式)

窗體頂端

·?

1簡答(1分)

·?

·?

簡述模板方法模式的概念,并畫出類的結(jié)構(gòu)、寫出代碼結(jié)構(gòu)。

模板方法模式是一種行為設(shè)計模式,它定義了操作中的算法的骨架,將一些步驟延遲到子類中實現(xiàn),使得子類可以不改變算法的結(jié)構(gòu)就可以重定義該算法的某些特定步驟。

?

類的結(jié)構(gòu):

?

- AbstractClass(抽象類):定義了一組抽象的方法,這些方法可以被子類實現(xiàn)。

- ConcreteClass(具體類):實現(xiàn)了抽象類中定義的抽象方法,完成該算法的子步驟。

?

代碼結(jié)構(gòu):

?

```

// 抽象類

abstract class AbstractClass {

????public final void templateMethod() {

????????// 算法骨架代碼

????????method1();

????????method2();

????????method3();

????}

?

????protected abstract void method1();

????protected abstract void method2();

????protected abstract void method3();

}

?

// 具體類

class ConcreteClass extends AbstractClass {

????@Override

????protected void method1() {

????????// 實現(xiàn)相關(guān)的業(yè)務(wù)邏輯

????}

?

????@Override

????protected void method2() {

????????// 實現(xiàn)相關(guān)的業(yè)務(wù)邏輯

????}

?

????@Override

????protected void method3() {

????????// 實現(xiàn)相關(guān)的業(yè)務(wù)邏輯

????}

}

?

// 示例代碼

AbstractClass obj = new ConcreteClass();

obj.templateMethod();

```

·?

·?

·?

以附件形式上傳答案

·?

支持png、jpg、gif、psd、ai、doc、docx、xls、xlsx、pdf格式的文件和zip、rar格式的壓縮文件。

·?

上傳附件預(yù)覽作業(yè)

·?

0%

·?

·?

2簡答(1分)

·?

·?

人生軌跡問題:生活Life一般都包含幾個基本步驟:學習Study,愛情Love和工作work。規(guī)定每個人都要經(jīng)歷這幾個步驟,其基本流程都一樣。如今父母支持自由戀愛;自主學習;但最終結(jié)果都要求你們找到一個好工作?,F(xiàn)使用模板方法模式模擬你的人生Yourlife軌跡流程,并代碼實現(xiàn)。

模板方法模式是一種行為設(shè)計模式,它定義了一個算法的骨架,并允許子類為一個或多個步驟提供實現(xiàn)。

在這個問題中,我們可以使用模板方法模式來模擬一個人的人生軌跡,其包含三個步驟:學習、愛情、工作。每個步驟都需要具體的實現(xiàn),但整個流程的基本骨架都是相同的,分別是學習、愛情和工作。具體實現(xiàn)如下:

```java

public abstract class YourLife {

// 模板方法,定義整個流程的骨架

public final void lifePath() {

study();

love();

work();

}

// 抽象方法,具體步驟的實現(xiàn)由子類實現(xiàn)

public abstract void study();

public abstract void love();

public abstract void work();

}

// 具體實現(xiàn),學習階段

public class Study extends YourLife {

@Override

public void study() {

System.out.println("自主學習,努力提升自己的知識水平。");

}

@Override

public void love() {

// 不需要實現(xiàn)

}

@Override

public void work() {

// 不需要實現(xiàn)

}

}

// 具體實現(xiàn),愛情階段

public class Love extends YourLife {

@Override

public void study() {

// 不需要實現(xiàn)

}

@Override

public void love() {

System.out.println("找到自己喜歡的人,享受愛情的美好。");

}

@Override

public void work() {

// 不需要實現(xiàn)

}

}

// 具體實現(xiàn),工作階段

public class Work extends YourLife {

@Override

public void study() {

// 不需要實現(xiàn)

}

@Override

public void love() {

// 不需要實現(xiàn)

}

@Override

public void work() {

System.out.println("找到一個好工作,努力工作賺錢。");

}

}

```

使用示例:

```java

public class Main {

public static void main(String[] args) {

YourLife life = new Study();

life.lifePath();

System.out.println("---------------------");

life = new Love();

life.lifePath();

System.out.println("---------------------");

life = new Work();

life.lifePath();

}

}

```

輸出結(jié)果

?

·?

·?

?

·?

·?

·?

以附件形式上傳答案

·?

支持png、jpg、gif、psd、ai、doc、docx、xls、xlsx、pdf格式的文件和zip、rar格式的壓縮文件。

·?

上傳附件預(yù)覽作業(yè)

·?

0%

·?

·?

3簡答(1分)

·?

·?

銀行業(yè)務(wù)辦理流程問題:在銀行辦理業(yè)務(wù)時,一般都包含幾個基本步驟(process),首先需要取號 (takeNumber),然后辦理具體業(yè)務(wù)(transact),最后需要對銀行工作人員進行評分(evaluate)。無論業(yè)務(wù)是取款(Withdraw)、存款(Deposit)還是轉(zhuǎn)賬(Transfer),其基本流程都一樣,只是具體業(yè)務(wù)細節(jié)不同?,F(xiàn)使用模板方法模式模擬銀行業(yè)務(wù)辦理流程。

以下是使用模板方法模式模擬銀行業(yè)務(wù)辦理流程的示例代碼:

```

//銀行業(yè)務(wù)辦理流程模板類

class BankBusinessProcess {

public:

virtual void takeNumber() = 0; //取號

virtual void transact() = 0; //辦理具體業(yè)務(wù)

virtual void evaluate() = 0; //評分

//模板方法,定義了銀行業(yè)務(wù)辦理的基本流程

void process() {

takeNumber(); //取號

transact(); //辦理具體業(yè)務(wù)

evaluate(); //評分

}

};

//取款業(yè)務(wù)類

class WithdrawBusiness : public BankBusinessProcess {

public:

void takeNumber() {

cout << "取款 - 取號" << endl;

}

void transact() {

cout << "取款 - 辦理具體業(yè)務(wù)" << endl;

}

void evaluate() {

cout << "取款 - 評分" << endl;

}

};

//存款業(yè)務(wù)類

class DepositBusiness : public BankBusinessProcess {

public:

void takeNumber() {

cout << "存款 - 取號" << endl;

}

void transact() {

cout << "存款 - 辦理具體業(yè)務(wù)" << endl;

}

void evaluate() {

cout << "存款 - 評分" << endl;

}

};

//轉(zhuǎn)賬業(yè)務(wù)類

class TransferBusiness : public BankBusinessProcess {

public:

void takeNumber() {

cout << "轉(zhuǎn)賬 - 取號" << endl;

}

void transact() {

cout << "轉(zhuǎn)賬 - 辦理具體業(yè)務(wù)" << endl;

}

void evaluate() {

cout << "轉(zhuǎn)賬 - 評分" << endl;

}

};

//客戶端調(diào)用

int main() {

BankBusinessProcess* w = new WithdrawBusiness(); //取款

BankBusinessProcess* d = new DepositBusiness(); //存款

BankBusinessProcess* t = new TransferBusiness(); //轉(zhuǎn)賬

w->process(); //取款流程

d->process();

t->process(); //轉(zhuǎn)賬流程

return 0;

}

?

·?

·?

?

·?

·?

·?

以附件形式上傳答案

·?

支持png、jpg、gif、psd、ai、doc、docx、xls、xlsx、pdf格式的文件和zip、rar格式的壓縮文件。

·?

上傳附件預(yù)覽作業(yè)

·?

0%

·?

·?

4簡答(1分)

·?

·?

咖啡店準備飲料流程問題:準備飲料(CaffeineBeverage)都有一定的步驟(prepareRecipe()),如先將水煮開(boilWater())、再泡飲料包(brew())、然后將泡好的飲料倒入杯子(pourInCup())、最后可以加入一些輔料調(diào)味(addCondiments())。泡茶和泡咖啡基本步驟相似,只是泡的原材料和添加的輔料不同。先根據(jù)模板方法模式來優(yōu)化以上方案,并用java代碼實現(xiàn)。

·?

·?

·?

以附件形式上傳答案

·?

支持png、jpg、gif、psd、ai、doc、docx、xls、xlsx、pdf格式的文件和zip、rar格式的壓縮文件。

·?

上傳附件預(yù)覽作業(yè)

·?

0%

·?

窗體底端

?


作業(yè)12(模板方法模式) 窗體頂端 ? 1簡答(1分) ? ? 簡述模板方法模式的概念,并畫的評論 (共 條)

分享到微博請遵守國家法律
松阳县| 建德市| 惠安县| 密山市| 兴隆县| 达日县| 漠河县| 敦煌市| 邯郸县| 牟定县| 肥乡县| 临城县| 新化县| 水城县| 平邑县| 四子王旗| 潜江市| 齐齐哈尔市| 屏山县| 镇江市| 峨眉山市| 玉环县| 武胜县| 观塘区| 墨竹工卡县| 上饶市| 望城县| 湟中县| 台湾省| 剑阁县| 桑日县| 灵丘县| 武陟县| 许昌县| 琼海市| 漳浦县| 盐山县| 微博| 双鸭山市| 商洛市| 灵宝市|