設計模式隨筆 模板方式

2021-07-24 10:12:00 字數 1796 閱讀 9207

1. 概述(官方解釋)

模板方法模式(

template method

):定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中。

該模式使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。

2. 個人理解

顧名思義,就是做一些任務的通用流程 比如: 自我介紹模板、推薦信模板

準備乙個抽象類,用於定義模板(步驟的模板),把部分確定的邏輯定義在某些方法中,用其他抽象方法實現剩餘的邏輯。

不同子類對這些邏輯有不同的實現。

定義多個抽象操作,定義並實現乙個模板方法,將步驟放在這個具體方法裡,推遲到子類實現。子類可以改變父類的可變部分,但不能改變模板方法所代表的頂級邏輯

3.模板中的角色

抽象類(abstractclass):實現了模板方法,定義了演算法的骨架。

具體類(concreteclass):實現抽象類中的抽象方法,已完成完整的演算法。

4. 應用場景

在某些類的演算法中,用了相同的方法,造成**的重複。

控制子類擴充套件,子類必須遵守演算法規則。

5. 自動化測試中的應用場景

做api自動化測試,場景有執行單個case,自動化回歸,執行被選中的幾條cases,執行流程是一樣的,但是具體操作有些不同。

具體流程: 1)準備資料  2)初始化資料  3) 傳送請求 4) 獲取響應後的斷言和處理  5)執行完的處理 。 我們框架中只有3) 4)使用的機制是一樣的,在準備資料。。。還有 5)執行完的處理都不一樣。這種場景就可以使用模板方式定義

舉例抽象類

public abstract class abstracttesting 

private void assertresponse()

private void sendrequest()

public abstract void gettestcases();

public abstract void intdata();

public abstract void aftertesting();

}

具體類

public class timingruncases extends abstracttesting 

@override

public void intdata()

@override

public void aftertesting()

}

6. 舉例

抽象類

public abstract class xiaopin 

}

具體類

public class dapuke extends xiaopin 

@override

public void jiaoliu()

@override

public void shanqing()

@override

public void xushi()

}

場景類

public class testtemplatemethod 

}

設計模式之模板方式模式

我打算把設計模式都總結起來,寫成部落格,這樣以後複習總結或者需要更改的也更方便。今天要聊的是 模板方式模式 template method pattern 模板方式的定義 模板方法模式在乙個方法中定義乙個演算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以再不改變演算法結構的情況下,重新定義...

設計模式隨筆

設計模式是為了讓程式,具有更好的 重用性 可讀性可擴充套件性 可靠性使程式呈現高內聚低耦合 單一職責原則 介面隔離原則 依賴倒轉原則 黎克特制替換原則 開閉原則 迪公尺特法則 合成復用原則 1.餓漢式 靜態常量 步驟 構造器私有化 防止new 類的內部建立物件 向外暴露乙個靜態的公共方法 實現 pu...

設計模式隨筆 命令模式

封裝呼叫方法,命令模式能夠把方法呼叫封裝到乙個起來。這樣,命令方法就不用在乎方法內部是做什麼的了,只需要關心封裝的過程,是開還是關閉某些東西。它能做記錄日誌,或者撤銷等。現在我們有乙個需求,就是幫家電廠商設計乙個遙控器,這個遙控器有4個鏈結裝置的開關,和乙個撤銷按鈕。如下圖所示 現在我們看看廠商的家...