學(xué)生時(shí)代考試時(shí),經(jīng)常涉及到AB卷,假如現(xiàn)在需要出兩套試卷,試題及答案有差異但不大,這個(gè)時(shí)候該如何設(shè)計(jì)呢?
我們可以用模板方法模式來考慮這個(gè)問題。
首先定義一個(gè)試卷基類,方便真實(shí)的試卷來繼承公用的部分
public class TestPaper {public void TestQuestion1(){System.out.println("問題1");
System.out.println("答案1:"+Answer1());
}
protected String Answer1(){return "";
}
public void TestQuestion2(){System.out.println("問題2");
System.out.println("答案2:"+Answer2());
}
protected String Answer2(){return "";
}
public void TestQuestion3(){System.out.println("問題3");
System.out.println("答案3:"+Answer3());
}
protected String Answer3(){return "";
}
}
定義具體的實(shí)現(xiàn)類
public class TestPaperA extends TestPaper{@Override
public String Answer1(){return "a";
}
@Override
public String Answer2(){return "b";
}
@Override
public String Answer3(){return "c";
}
}
public class TestPaperB extends TestPaper{@Override
public String Answer1(){return "d";
}
@Override
public String Answer2(){return "e";
}
@Override
public String Answer3(){return "f";
}
}
定義業(yè)務(wù)方法看在具體業(yè)務(wù)邏輯中如何使用
public class TemplateMethod {public static void main(String[] args) {//模板方法模式
func1();
}
public static void func1(){System.out.println("A試卷:");
TestPaper paperA = new TestPaperA();
paperA.TestQuestion1();
paperA.TestQuestion2();
paperA.TestQuestion3();
System.out.println("B試卷:");
TestPaper paperB = new TestPaperB();
paperB.TestQuestion1();
paperB.TestQuestion2();
paperB.TestQuestion3();
}
}
執(zhí)行結(jié)果A試卷:
問題1
答案1:a
問題2
答案2:b
問題3
答案3:c
B試卷:
問題1
答案1:d
問題2
答案2:e
問題3
答案3:f
結(jié)果分析模板方法模式,定義一個(gè)操作中的算法的骨架,而將一些步驟延遲到子類中。
模板方法使得子類可以不改變一個(gè)算法的結(jié)構(gòu)即可重新定義該算法的某些特定步驟。
https://xmlrambo.github.io/
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
網(wǎng)頁名稱:設(shè)計(jì)模式之模板方法模式-創(chuàng)新互聯(lián)
網(wǎng)頁鏈接:http://muchs.cn/article34/dgehpe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、企業(yè)網(wǎng)站制作、小程序開發(fā)、網(wǎng)頁設(shè)計(jì)公司、全網(wǎng)營銷推廣、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容