日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

设计模式-模板方法(Template Method Patten)

發布時間:2025/1/21 asp.net 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式-模板方法(Template Method Patten) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 定義一個操作中算法的框架,而將一些步驟延遲到一些子類。使得子類可以不改變一個算法的結構即可重新定義改算法的某些特定步驟

先舉一個使用模板方法的小例子方便大家加深印象和理解

首先畫下類圖

?

image.png

?

結構比較簡單,看代碼就一目了染

首先我們建一個抽象電腦類

/*** @author shuliangzhao* @Title: Computer* @ProjectName design-parent* @Description: TODO* @date 2019/5/28 23:02*/ public abstract class Computer {protected abstract void open();protected abstract void close();public void run() {this.open();this.close();} }

電腦cup是i5的實現類

/*** @author shuliangzhao* @Title: I5Computer* @ProjectName design-parent* @Description: TODO* @date 2019/5/28 23:04*/ public class I5Computer extends Computer {@Overrideprotected void open() {System.out.println("電腦cup是i5的開機");}@Overrideprotected void close() {System.out.println("電腦cup是i5的開機");} }

電腦cup是i7實現類

/*** @author shuliangzhao* @Title: I7Computer* @ProjectName design-parent* @Description: TODO* @date 2019/5/28 23:04*/ public class I7Computer extends Computer {@Overrideprotected void open() {System.out.println("電腦cup是i7的開機");}@Overrideprotected void close() {System.out.println("電腦cup是i7的關機");} }

客戶端

/*** @author shuliangzhao* @Title: Client* @ProjectName design-parent* @Description: TODO* @date 2019/5/28 23:05*/ public class Client {public static void main(String[] args) {Computer computer = new I5Computer();computer.run();Computer computer1 = new I7Computer();computer1.run();} }

運行結構為:

?

?

注意:抽象模板的基本方法比如例子中的(open和close) 盡量設計為protected類型,不需要暴露的屬性和方法盡量不要設置為public

模板方法優點:

1.封裝不變部分,擴展可變部分,把認為不變部分方法封裝到父類實現,可變部分通過子類來繼承實現擴展。
2.提取公共代碼,便于維護。
3.行為由父類控制,子類實現

模板方法缺點:

一般來說抽象類負責聲明最抽象,最一般的屬性和方法,由實現類去完成。但是模板方法卻顛倒了,抽象類定義了部分抽象方法,由子類實現。也就是說子類結構影響了父類結果。

模板方法使用場景

1.子類有公共方法,邏輯差不多

總結

以上是生活随笔為你收集整理的设计模式-模板方法(Template Method Patten)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。