二十三種設計模式之行為型模式之模板方法

2021-07-06 04:49:18 字數 1282 閱讀 8967

概述

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

templatemethod使得子類可以不改變乙個演算法的結構即可重定義該演算法的

某些特定步驟。

適用性

1.一次性實現乙個演算法的不變的部分,並將可變的行為留給子類來實現。

2.各子類中公共的行為應被提取出來並集中到乙個公共父類中以避免**重複。

首先識別現有**中的不同之處,並且將不同之處分離為新的操作。

最後,用乙個呼叫這些新的操作的模板方法來替換這些不同的**。

3.控制子類擴充套件。

參與者

1.abstractclass

定義抽象的原語操作(primitiveoperation),具體的子類將重定義

它們以實現乙個演算法的各步驟。

實現乙個模板方法,定義乙個演算法的骨架。

該模板方法不僅呼叫原語操作,也呼叫定義在abstractclass或其他物件中的操作。

2.concreteclass

實現原語操作以完成演算法中與特定子類相關的步驟。

類圖

例子

abstractclass

public

abstract

class template }}

concreteclass

public

class

templateconcrete

extends

template

}

test

public

class test

}

result

開始列印

這是子類的實現

這是子類的實現

這是子類的實現

這是子類的實現

這是子類的實現

這是子類的實現

這是子類的實現

這是子類的實現

這是子類的實現

這是子類的實現

二十三種設計模式之 (十) 原型模式

prototype 原型模式 實際也叫轉殖模式 用乙個已經建立的例項作為原型,通過複製該原型物件來建立乙個和原型相同或相似的新物件。在這裡,原型例項指定了要建立的物件的種類。用這種方式建立物件非常高效,根本無須知道物件建立的細節 原型模式的優點 結構圖 例項 建立乙個person物件,通過原型模式轉...

二十三種設計模式之組合模式

組合模式 將物件聚合成樹形結構來表現 整體 部分 的層次結構。組合模式能讓客戶以一致的方式來處理個別物件以及物件組合。也就是我們可以忽略物件組合與個體之間的差別。應用場景 餐廳合併列印主選單 子選單 public abstract class menucomponent public string ...

二十三種設計模式之工廠模式

工廠模式的核心 例項化物件 原因 有些物件不能直接例項化,比如介面 抽象類及複雜物件的其他依賴 核心 呼叫工廠class的靜態方法例項化物件 以日誌為例 public class staticfactory 核心 先建立工廠物件,之後呼叫工廠方法 例項化工廠模式 public class insta...