设计模式java 模板模式_设计模式-模板模式 JAVA实现
模板模式很容易理解,套個(gè)模板,然后內(nèi)容自由發(fā)揮。大家都有求職寫(xiě)簡(jiǎn)歷的時(shí)候。會(huì)從網(wǎng)上下一些簡(jiǎn)歷模板。一般分為基本信息,個(gè)人簡(jiǎn)介,項(xiàng)目經(jīng)歷,工作經(jīng)歷,培訓(xùn),證書(shū)等。這個(gè)就是模板。大家基本上就是在這個(gè)模板上填入個(gè)人的一些信息。
JAVA對(duì)模板模式的實(shí)現(xiàn)基本也是一樣。先定義一個(gè)抽象類,一般在這里會(huì)兩種方法。
一種是以final修飾的方法,用來(lái)明確定義這個(gè)抽象類所要完成的基本流程等一些的。這里要寫(xiě)成final,就是不允許其實(shí)現(xiàn)類對(duì)它的基本流程模板形式進(jìn)行修改。
另一種是以abstract修飾的方法,用來(lái)明確實(shí)現(xiàn)類要完成哪些具體的工作(當(dāng)然在實(shí)現(xiàn)時(shí)也可能不完成),而具體工作要怎么干并不進(jìn)行干涉。
合在一起就是流程必須按模板的來(lái),任務(wù)大家各自花樣去實(shí)現(xiàn)
以下以倉(cāng)庫(kù)揀貨出庫(kù)的操作業(yè)務(wù)來(lái)具體描述一個(gè)模板模式的基本實(shí)現(xiàn)。
倉(cāng)庫(kù)的揀貨出庫(kù)操作一般要以拿到揀貨單開(kāi)始發(fā)起整個(gè)流程。包括
1,按揀貨任務(wù)進(jìn)行揀貨
2,揀貨完成后復(fù)核揀貨列表(也可能不復(fù)核)
3,出庫(kù)
那么就先定義一個(gè)抽象的模板類來(lái)規(guī)定好當(dāng)前的流程與要完成的任務(wù)
import bean.PickDoc;
import bean.PickList;
import bean.PickTask;
public abstract class StockOutTemplate {
//按順序完成揀貨到出庫(kù)的操作
public final void doExecPickTask(PickDoc doc,PickTask task,PickList list) {
//揀貨
doPickup(task);
//復(fù)核
doCheck(list);
//出庫(kù)
doStockOut(doc);
}
//定義揀貨方法,具體實(shí)現(xiàn)整箱揀貨或散件揀貨
public abstract void doPickup(PickTask task);
//定義復(fù)核方法,具體實(shí)現(xiàn)掃描復(fù)核或確數(shù)復(fù)核
public abstract void doCheck(PickList list);
//定義出庫(kù)方法 具體實(shí)現(xiàn)本部物流出庫(kù)或第三方物流出庫(kù)
public abstract void doStockOut(PickDoc doc);
}
然后一個(gè)具體的業(yè)務(wù)類來(lái)擴(kuò)展完成具體的業(yè)務(wù)
package template;
//
// Generated by StarUML(tm) Java Add-In
//
// @ Project : Untitled
// @ File Name : StockOutImpl.java
// @ Date : 2020/4/4
// @ Author :
//
//
import bean.PickDoc;
import bean.PickList;
import bean.PickTask;
public class StockOutImpl extends StockOutTemplate {
//揀貨
public void doPickup(PickTask task) {
System.out.println("進(jìn)行揀貨操作");
}
//復(fù)核
public void doCheck(PickList list) {
System.out.println("進(jìn)行復(fù)核操作,本倉(cāng)庫(kù)不進(jìn)行復(fù)核");
}
//出庫(kù)
public void doStockOut(PickDoc doc) {
System.out.println("出庫(kù)單出庫(kù)操作");
}
}
最后進(jìn)行調(diào)用
總結(jié)
以上是生活随笔為你收集整理的设计模式java 模板模式_设计模式-模板模式 JAVA实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: LQR控制律设计
- 下一篇: ASP.NET车辆管理系统