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