摸板模式與鉤子

2021-07-16 16:42:46 字數 1777 閱讀 8083

常常會在程式中遇到多個子類有共同的方法以及相似的呼叫過程。這個時候我們就可以使用模板模式來解決這些重複性的工作,例如我們買東西的時候一般都是挑選商品、付款這樣的步驟,區別僅僅是挑選的商品品種不一樣而已,這個時候我們就可以使用模板模式。那麼模板模式需要怎麼來實現呢,如下圖

**如下:

public class test

public static void main(string args)

goods f=new fruit();

f.run();

goods d=new drink();

d.run();

class goods

void run()

getgoods();

pay();

void getgoods()

system.out.println("get");

void pay()

system.out.println("pay");

class fruit extends goods

void getgoods()

system.out.println("fruit");

class drink extends goods

void getgoods()

system.out.println("drink");

結果如圖:

這樣我們就可以避免在子類中涉及具體的演算法,只需要將重複的內容已經演算法提取到父類即可,降低了耦合。

至此,我們還可以加入乙個鉤子的機制,即可相應的對一些不需要的演算法來進行控制。

**如下

public class test

public static void main(string args)

goods f=new fruit();

f.run();

goods d=new drink();

d.run();

class goods

void run()

if(hasgetgoods())

getgoods();

pay();

void getgoods()

system.out.println("get");

boolean hasgetgoods()

return false;

void pay()

system.out.println("pay");

class fruit extends goods

boolean hasgetgoods()

return true;

void getgoods()

system.out.println("fruit");

class drink extends goods

boolean hasgetgoods()

return false;

void getgoods()

system.out.println("drink");

結果:

聯絡我:[email protected]

2016-8-3

21:25

摸板模式與鉤子

常常會在程式中遇到多個子類有共同的方法以及相似的呼叫過程。這個時候我們就可以使用模板模式來解決這些重複性的工作,例如我們買東西的時候一般都是挑選商品 付款這樣的步驟,區別僅僅是挑選的商品品種不一樣而已,這個時候我們就可以使用模板模式。那麼模板模式需要怎麼來實現呢,如下圖 如下 public clas...

摸板的讀取,儲存

using system using system.data using system.text namespace demo.business public string title set public string content set public string author set pu...

模板方法模式與鉤子

作用 子類實現演算法的可選部分 子類可以對鉤子不理會 子類可以對某些即將發生或剛剛發生的步驟做出反應 比如重新排序 新的賦值 顯示等等 子類為其抽象類做一些決定。template.h pragma once include using namespace std class template vir...