利用模板方法封裝業務單元變化

2021-09-30 03:40:45 字數 940 閱讀 2631

1、意圖

軟體復用的關鍵是尋找相似性,在很多情況下,相似性表現為業務流程相似,但是業務

單元具有特殊性。如果是這種情況,可以定義乙個操作中的業務流程骨架,而將一些業務單

元的實現延伸到子類中去,使得子類可以不改變乙個業務流程的的結構,即可重新定義該業

務流程的某些特定業務單元。這裡需要復用的是業務流程的結構,也就是操作步驟,而步驟

的實現(或者是業務單元的實現)可以在子類中完成。

2、使用場合

1)一次性實現乙個業務流程的不變部分,並且將可變的行為留給子類來完成。

2)各子類公共的行為應該被提取出來並集中到乙個公共父類中以避免**的重複。首

先識別現有業務的不同之處,並且把不同部分分離為新的操作,最後,用乙個呼叫這些新的

操作的模板方法來替換這些不同的**。

3)控制子類的擴充套件。

3、結構

模板方法的結構是使用乙個抽象類,在抽象類中定義模板方法的關鍵是:

在乙個非抽象方法中呼叫呼叫抽象方法,而這些抽象方法在子類中具體實現。

**:public abstract class payment

public void setamount(double value)

public string gosale()

public abstract string action();

}class cashpayment extends payment

}測試:

public class test

假定系統已經投運,使用者提出新的需求,要求加上信用卡支付和支票支付,可以這樣寫:

public class creditpayment extends payment

}class checkpayment extends payment

}呼叫:

public class test

}

JAVA 單元測試 字段封裝 構造器 方法過載

單元測試主要是用於提高編寫 質量,編寫單元測試來對我們所編寫的方法進行測試。單元測試是開發人員編寫 單元測試依賴junit 這個框架 單元測試方法上需加 test assert 斷言,主要是用於判斷測試的通過的條件。public是公有的,任何人都可以去訪問它修飾的成員變數,沒辦法去控制值的邏輯校驗或...

self 利用self在類封裝的方法中輸出物件屬性

class cat def eat self 哪乙個物件呼叫的方法,self就是哪乙個物件的引用 print s 愛吃魚 self.name def drink self print s 要喝水 self.name 建立貓物件 tom cat 可以使用 屬性名 利用賦值語句就可以了 tom.name...

模板引數的編譯時檢查方法,利用typedef

很多情況下,你需要使用模板引數,但又不知道使用者輸入的模板引數是否正確,是否在範圍內等,此時可以利用typedef的特性實現一種模板引數檢查機制。template size t sz 0 模板引數sz預設 0 class templateclass 注 typedef的這個int array顯然沒有...