使用繼承和使用組合的乙個例子

2021-08-29 19:16:17 字數 648 閱讀 2837

需求如下:

實現對帳功能(兩個平台用來保持資料一致性的乙個方法)。有兩種方式,一種是已經有完整的對帳記錄,可直接拿來對帳,另一種只提供乙個關鍵字,對帳之前需要先根據該關鍵字查詢以獲得對帳記錄。

對帳功能在現有系統中已有兩個版本的實現了:一種是定時對帳,另一種是手工填寫資訊進行對帳。這兩種可歸納為同一種型別(即有現成的對帳記錄了,直接對帳處理即可),但由於歷史原因(不同的人開發的,為了簡單的復用**,第二個人拷貝的前乙個人的**),兩個功能幾90%的**是一致的。

本次新加的兩個功能,提供另外兩種對帳方式,只填寫對帳關鍵字,其它的資訊需要在對帳的時候再臨時去查詢獲得,考慮到以前的兩個功能,於是對原有**進行重構。初步考慮了如下兩種實現方式:

1、提供對帳操作的抽象類,其中的對帳方法實現對帳的整個邏輯,包括引數校驗、對帳、日誌記錄;並有乙個抽象方法,獲取對帳記錄,由子類實現。然後兩個子類繼承該抽象類,分別實現根據現成的對帳記錄對帳和根據關鍵字進行對帳操作。

2、提供對帳操作的類,其中的對帳方法實現對帳的整個邏輯,包括引數校驗、對帳、日誌記錄;另外抽象出乙個獲取對帳記錄的介面,提供兩種實現,一種根據關鍵字查詢獲取對帳記錄,另一種根據現有的對帳記錄直接構造。對帳類中有乙個獲取對帳記錄的實現類的乙個引用,對帳操作時呼叫相應的方法獲即可獲得對帳記錄。

第一種即為模版方法,第二種即為策略模式。

使用 ant 構建的乙個例子

在專案根目錄下新建乙個 build.xml 檔案,內容如下 然後在命令列執行 ant jsp,就可以了。不過前提是安裝了 ant,mac 下安裝很方便,直接 brew install ant。簡要說明 這一行指明了要編譯的源 目錄,相對於根目錄的路徑。這一行指明了編譯後的位元組碼檔案存放的目錄,相對...

VC 中使用Zlib的乙個例子

選擇win32 lib release 按f7編繹生成zlib.lib 工程中使用時把 d zlib 1.2.3 projects visualc6 win32 lib release zlib.lib d zlib 1.2.3 zlib.h d zlib 1.2.3 zconf.h 拷貝到所在工程...

使用caffe微調VGG的乙個例子

1.得到資料集,對資料集做處理,處理成模型需要的資料格式,分出訓練集,驗證集以及測試集 2.為資料集生成標籤檔案,生成均值檔案。3.人臉資料劃分,轉換為lmdb。4.使用該資料通過以models finetune flickr style train val.prototxt 為模板,以vgg fa...