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