深入淺出設計模式 模板模式

2021-09-29 08:10:43 字數 1028 閱讀 7485

設計模式是程式設計師必須掌握的技能,熟練應用各種設計模式,不僅可以提公升我們的編碼能力,也可以使得我們的編碼更美觀。在這裡我們來講解一下模板模式。

模板模式(template pattern)中,乙個抽象類公開定義了執行它的方法的方式/模板。它的子類可以按需要重寫方法實現,但呼叫將以抽象類中定義的方式進行。這種型別的設計模式屬於行為型模式。

優點:1、封裝不變部分,擴充套件可變部分。 2、提取公共**,便於維護。 3、行為由父類控制,子類實現。

缺點:每乙個不同的實現都需要乙個子類來實現,導致類的個數增加,使得系統更加龐大。

以下是一段簡單的模板模式的**設計:

package com.designpatterns.templatemethod;

/** * 設計模式之模板模式:

* * @author 小輝ge/小輝哥

* * 2023年11月4日 下午22:40:00

*/public class templatemethod

}// 遊戲抽象類

abstract class game

abstract void init();

abstract void begin();

abstract void end();

}// 吃雞遊戲

class chickengame extends game

@override

void begin()

@override

void end()

}

測試輸出結果如下:

深入淺出模板方法模式

一 引子這是乙個很簡單的模式,卻被非常廣泛的使用。之所以簡單是因為在這個模式中僅僅使用到了繼承關係。繼承關係由於自身的缺陷,被專家們扣上了 罪惡 的帽子。使用委派關係代替繼承關係 盡量使用介面實現而不是抽象類繼承 等等專家警告,讓我們這些菜鳥對繼承 另眼相看 其實,繼承還是有很多自身的優點所在。只是...

深入淺出設計模式 工廠模式

披薩店新推出了點單系統,披薩需要通過不同的製作,相同的烘焙,裁剪等工序才能完成。披薩的種類實在太多了,在構造披薩例項時,光是if else 語句就長的可怕,修改與維護更令人頭疼。披薩子類繼承實現相同的基類,通過基類呼叫不同的子類,使得 具有一定的彈性,將構造子類放入業務 導致了子類與業務 的耦合,令...

深入淺出設計模式 設計模式之路

2.2 根據模式的作用劃分 3.總結 博主經過6年的 洗禮,慢慢意識到 中使用設計模式的重要性。然而,在我遇到的程式設計師大軍中,我大概歸類了以下幾類人 因此,博主計畫做乙個設計模式的系列帖子,記錄學習筆記,力求深入淺出設計模式。目前有23種設計模式。設計模式有兩種分類方法,一種是根據模式的目的來劃...