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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

漫说模板方法模式---学生时代的烦恼

發布時間:2025/4/5 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 漫说模板方法模式---学生时代的烦恼 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 你過了嗎?多么令人抓狂的四六級考試呀

?有多少人曾經殫精竭慮?有多少人溯夜難眠?就是為了僅僅通過而已。

2. 考試之前,匆忙的需找這2B鉛筆,考試之中的答題卡,多么熟悉的過程呀,

多么多的選擇題,由我們來涂寫,一次次的皺眉,只為勝利的那一刻。

你看,只有一套題目(其實分AB卷),一套答題紙(也分為AB),多么簡單的流程呀,可是為什么我們的分數差別那么大呢??

4. 下面切入正題,我們的模板方法模式:

  • Define the skeleton of an algorithm in an operation, deferring some steps to subclasses. Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithm's structure.
  • 定義在一個操作中的一個算法框架,把一些步驟推遲到子類去實現。模板方法模式讓子類不需要改變算法結構而重新定義特定的算法步驟。

4. 示例代碼

類圖

?

package com.programcreek.designpatterns.templatemethod;abstract public class Vehicle {//set to protected so that subclass can accessprotected boolean status;abstract void start();abstract void run();abstract void stop();public void testYourVehicle(){start();if(this.status){run();stop();} } }package com.programcreek.designpatterns.templatemethod;public class Car extends Vehicle {@Overridevoid start() {this.status = true;}@Overridevoid run() {System.out.println("Run fast!");}@Overridevoid stop() {System.out.println("Car stop!");} }package com.programcreek.designpatterns.templatemethod;public class Truck extends Vehicle {@Overridevoid start() {this.status = true;}@Overridevoid run() {System.out.println("Run slowly!");}@Overridevoid stop() {System.out.println("Truck stop!");} }import com.programcreek.designpatterns.templatemethod.Car; import com.programcreek.designpatterns.templatemethod.Truck; import com.programcreek.designpatterns.templatemethod.Vehicle;public class Main {public static void main(String args[]){Car car = new Car();testVehicle(car);Truck truck = new Truck();testVehicle(truck);}public static void testVehicle(Vehicle v){v.testYourVehicle();} }

5. 應用場景

????1. ????多個子類有公共方法,并且邏輯基本相同

????2.????對復雜的算法,核心算法設計為模板方法,細節功能則由各個子類實現

????3.????重構代碼

6.擴展

1.在spring中的應用spring jdbc

Spring JDBC提供了一套JDBC抽象框架,用于簡化JDBC開發。

Spring主要提供JDBC模板方式、關系數據庫對象化方式、SimpleJdbc方式、事務管理來簡化JDBC編程

Spring提供了3個模板類:

  • JdbcTemplate:Spring里最基本的JDBC模板,利用JDBC和簡單的索引參數查詢提供對數據庫的簡單訪問。
  • NamedParameterJdbcTemplate:能夠在執行查詢時把值綁定到SQL里的命名參數,而不是使用索引參數。
  • SimpleJdbcTemplate:利用Java 5的特性,比如自動裝箱、通用(generic)和可變參數列表來簡化JDBC模板的使用

2. 在jdk中的應用

  • 非抽象方法?java.io.InputStream,?java.io.OutputStream,?java.io.Reader和java.io.Writer.
  • 非抽象方法?java.util.AbstractList,?java.util.AbstractSet?andjava.util.AbstractMap.
  • javax.servlet.http.HttpServlet, 所有?doXXX()?默認發送一個 HTTP 405 "不允許的方法" 錯誤作為響應.你可以改寫或者默認.

reference:

http://www.programcreek.com/2012/08/java-design-pattern-template-method/

http://en.wikipedia.org/wiki/Template_method_pattern

http://book.51cto.com/art/201202/318456.htm

http://my.oschina.net/u/1470003/blog/224031

http://my.oschina.net/aps/blog/85981

http://stackoverflow.com/questions/1673841/examples-of-gof-design-patterns

注:以上圖片來自于互聯網,不一一注明了。

轉載于:https://www.cnblogs.com/davidwang456/p/3678106.html

總結

以上是生活随笔為你收集整理的漫说模板方法模式---学生时代的烦恼的全部內容,希望文章能夠幫你解決所遇到的問題。

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