模板方法(Template Method)模式屬于行為模式,定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。使得子類可以不改變一個算法的結構即可重定義該算法的某些特定步驟。這里的算法的結構,可以理解為你根據需求設計出來的業務流程。特定的步驟就是指那些可能在內容上存在變數的環節。
結構模式:
1) AbstractClass(抽象類):定義了一到多個的抽象方法,以供具體的子類來實現它們;而且還要實現一個模板方法,來定義一個算法的骨架。該模板方法不僅調用前面的抽象方法,也可以調用其他的操作,只要能完成自身的使命。
2) ConcreteClass(具體類):實現父類中的抽象方法以完成算法中與特定子類相關的步驟。
模板:
public abstract class Print { protected abstract void printName(); protected abstract void printAge(); public void show() { this.printName(); this.printAge(); System.out.println(this); } }
具體類
public class PrintA extends Print { @Override protected void printAge() { System.out.println("20"); } @Override protected void printName() { System.out.println("This is A"); } }
public class PrintB extends Print { @Override protected void printAge() { System.out.println("18"); } @Override protected void printName() { System.out.println("This is B"); } }
public class Test { public static void main(String[] args) { Print p = new PrintA(); p.show(); Print pp = new PrintB(); pp.show(); } }
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
