模板設計模式Java初印象
概述
====
模板設計模式的兩種方式:
1.基於繼承的實現
2.基於組合的實現
一、基於繼承的實現
1.首先,建立一個模板類MyJdbcTemplateByIn,在模板類的execute方法中定義呼叫過程
public abstract class MyJdbcTemplateByIn {
private void beginConnection()
{
System.out.println("begin connetction");
}
private void closeConnection ()
{
System.out.println("close connetction");
}
public abstract void run();
public void execute()
{
beginConnection();
run();
closeConnection();
}
}
2.建立類RoleDao和MessageDao繼承於模板類MyJdbcTemplateByIn,並分別重寫run方法
public class RoleDao extends MyJdbcTemplateByIn {
@Override
public void run() {
System.out.println("role add");
}
}
public class MessageDao extends MyJdbcTemplateByIn {
@Override
public void run() {
System.out.println("message add");
}
}
3.測試
public class TestTemplate {
//基於繼承的方式
@test
public void test1() throws Exception {
MyJdbcTemplateByIn myJdbcTemplateByIn = new RoleDao();
myJdbcTemplateByIn.execute();
System.out.println("=============");
MyJdbcTemplateByIn myJdbcTemplateByIn2 = new MessageDao();
myJdbcTemplateByIn2.execute();
}
執行結果為
begin connetction
role add
close connetction
=============
begin connetction
message add
close connetction
二、基於組合的實現
1.首先建立模板類
public class MyJdbcTemplate {
private void beginConnection()
{
System.out.println("begin connetction");
}
private void closeConnection()
{
System.out.println("close connetction");
}
/**
* 呼叫方法:傳入一個鉤子函式的介面
*/
public void execute(MyCallback callback)
{
beginConnection();
callback.doInTemplate();
closeConnection();
}
/**
* 將所有要實現的方法都建立在模板中
*/
public void add(final int id)
{
execute(new MyCallback() {
@Override
public void doInTemplate() {
System.out.println("add"+id);
}
});
}
public void delete(final int id)
{
execute(new MyCallback() {
@Override
public void doInTemplate() {
System.out.println("delete"+id);
}
});
}
}
public interface MyCallback {
public void doInTemplate();
}
public class RoleDao extends MyJdbcTemplateByIn {
private MyJdbcTemplate mt = new MyJdbcTemplate();
public void add(int id)
{
mt.add(id);
}
public void delete(int id)
{
mt.delete(id);
}
@Override
public void run() {
System.out.println("role add");
}
@Override
public boolean isLog() {
return false;
}
}
public class TestTemplate {
//基於組合的方式
@Test
public void test2() throws Exception {
RoleDao roleDao = new RoleDao();
roleDao.add(1);
System.out.println("=============");
roleDao.delete(2);
}
}
執行結果:
begin connetction
add1
close connetction
=============
begin connetction
delete2
close connetction
相關推薦
模板設計模式Java初印象
概述 ==== 模板設計模式的兩種方式: 1.基於繼承的實現 2.基於組合的實現 一、基於繼承的實現 1.首先,建立一個模板類MyJdbcTemplateBy
Java學習——模板設計模式——抽象類的實際應用
設計模式的精髓:解耦。而模板設計模式是通過第三方進行解耦 什麼是內聚、解耦大家可以看一下博主 小異常 的博文:https://blog.csdn.net/sun8112133/article/details/81040275 模板設計模式:(基於抽象類)在一個方法中定義一個演算法的骨架,而將
JAVA基礎(57)---模板設計模式
由抽象類衍生出的一種設計模式:模板設計模式(模板方法設計模式) 模板設計模式,就是將完成某件事固定不變的步驟設計成模板,要用 abstract 修飾的方法,然後將不確定的業務邏輯設計成抽象的方法,目的就是讓子類繼承並且複寫該抽象方法,能夠為了實現可擴充套件性。官方的說法是:定義一個操作中的演
Java——模板設計模式和列舉類的實現
嘗試以MarkdownPad2方式寫部落格,感覺十分有條理,第一次使用花的時間較長,但是熟能生巧,後面會越用越熟練,更快吧~ 1. 模板設計模式 (1).模板方法模式就是定義一個演算法的骨架,而將具體的演算法延遲到子類來實現 (2)優點:使用模板方法模式
Java設計模式-5.模板設計模式
模板設計模式 1、模版設計模式概述 模版設計模式,就是定義一個演算法的骨架,而將具體的演算法延遲到子類中來實現。 優點:使用模板設計模式,在定義演算法骨架的同時,可以很靈活的實現具體的不同演算
java模板設計模式
模板模式 :解決某類事情的步驟有些是固定的,有些是會發生變化的,那麼這時候我們可以為這類事情提供一個模板程式碼,從而提高效率 。 模板模式的步驟: 先寫出解決該類事情其中 的一件的解決方案。 分析
java中模板設計模式
需求:編寫一個計算程式碼執行時間的模板 模板設計模式的步驟: 1)先寫出解決該類問題其中的一件解決方案 2)分析程式碼,把會發生變化的程式碼抽出來獨立成一個方法,同時把這個方法寫成一個抽象的方法abstarct 3)若果要使用模板類,就只需要繼承就可以使用, 4)為啦防止
六種常用的設計模式java實現(四)模板模式
模板模式,估計大家應該都接觸過,比如說,在完成某個業務邏輯前,需要處理一點事,在完成後也要處理一點事,這樣就可以把不一樣的地方給抽象出來,然後公共的地方都是一樣的,這樣的場景就會用到模板模式。 一、基本概念 模板方法模式是類的行為模式。準備一個抽象類,將部分
JAVA-模板設計模式
模板方法模式是類的行為模式。準備一個抽象類,將部分邏輯以具體方法以及具體建構函式的形式實現,然後宣告一些抽象方法來迫使子類實現剩餘的邏輯。不同的子類可以以不同的方式實現這些抽象方法,從而對剩餘的邏輯有不同的實現。這就是模板方法模式的用意。(引用自閻巨集博士的《JAVA
Java 抽象類 和 模板設計模式(Template)
抽象類,使用abstract宣告的類,用於被子類繼承抽象方法一定要放在抽象類中,抽象類也可以包含非抽象方法;定義抽象類:abstract class A{ private Stirng info = "A"; public void print(){ Syst
十三、模板設計模式
time nbsp args 功能 程序 模板設計模式 結束時間 pan () /* 模板設計模式:實現一個功能時,功能的一部分是確定的,一部分是不確定的,確定的部分還會用到 不確定的部分,那麽就把不確定的部分暴露出去,讓子類去實現 實現計算
C#模板設計模式使用和學習心得
傳統 oracle 設計模式 管理系統 邏輯 導致 www. 離開 不回 模板設計模式: 模版方法模式由一個抽象類和一個(或一組)實現類通過繼承結構組成,抽象類中的方法分為三種: 抽象方法:父類中只聲明但不加以實現,而是定義好規範,然後由它的子類去實現。
二、 抽象類延伸出的模板設計模式
pro 頂級 pri bsp 抽象類 pub 代碼 AC method 具體可參考:https://www.cnblogs.com/java-my-life/archive/2012/05/14/2495235.html 模板設計模式的關鍵:子類可以置換掉父類的可變部分,但
常用設計模式Java——Design pattern
設計模式 設計模式(Design Pattern)是一套被反覆使用、多數人知曉的、經過分類的、程式碼設計經驗的總結。 使用設計模式的目的:為了程式碼複用,增加可維護性 面向物件思想設計原則 單一職責原則 高內聚、低耦合
模板設計模式
在程式開發中你可能經常遇到這種情況,某個要實現的演算法分為多個步驟,有些步驟是固定不變的,有些步驟是不固定的,為了提高程式碼的可擴充套件性和可維護性,模板設計模式在這種場景下就派上用場了。 在模板設計模式中,一個演算法可以分為多個步驟,每個
設計模式之初理解
什麼是設計模式? 簡單的說,它是一個程式碼設計經驗的一個總結(一種套路),經過反覆的使用,被多數人知曉,不斷的分類而衍生出來。是為人們解決某類重複出現問題的一套成功或有效的解決方案。 為什麼要使用設計模式? 每個模式都描述了我們在程式設計過程中出現的各種問題,使用設計模式,可
Dao設計模式java
Data Access object 我們要在資料庫中加入一種訪問更為方便的物件,它有訪問資料庫的各種方法,它是一個介面 宣告規則 準備 將架包拷入專案下新建的lib資料夾中 並匯入 將我們寫好的工具類加入src下的包中 將我們的properties檔案放入專案下或者sr
策略設計模式和模板設計模式的區別
策略設計模式:準備一組演算法,並將演算法封裝起來,使得它們可以互換;它的重心不是如何現實演算法而是如何組合. 客戶端得清楚演算法的情況. 模板方法設計模式:在基類中定義骨架方法,其他的延遲到子類中實現. 通過排序來比較兩者不同: 1.定義一個普通的選擇排序類:
設計模式01-模板設計模式
pri wrap rri ride pub 編寫 system prot oid 父類編寫算法結構碼,子類實現邏輯細節; public class TemplateMethod { public final void print(String message) {