工廠三兄弟之簡單工廠模式(三)

2021-09-19 07:32:50 字數 2769 閱讀 3369

為了將chart類的職責分離,同時將chart物件的建立和使用分離,sunny軟體公司開發人員決定使用簡單工廠模式對圖表庫進行重構,重構後的結構如圖2所示:

圖2 圖表庫結構圖

在圖2中,chart介面充當抽象產品類,其子類histogramchart、piechart和linechart充當具體產品類,chartfactory充當工廠類。完整**如下所示:

//抽象圖表介面:抽象產品類

inte***ce

chart

//柱狀圖類:具體產品類

class

histogramchart

implements

chart

public

void

display

()}//餅狀圖類:具體產品類

class

piechart

implements

chart

public

void

display

()}//折線圖類:具體產品類

class

linechart

implements

chart

public

void

display

()}//圖表工廠類:工廠類

class

chartfactory

else

if (type.equalsignorecase("pie"))   else

if (type.equalsignorecase("line"))   return chart; }}

編寫如下客戶端測試**:

class

client

}

編譯並執行程式,輸出結果如下:

建立柱狀圖!

初始化設定柱狀圖!

顯示柱狀圖!

在客戶端測試類中,我們使用工廠類的靜態工廠方法建立產品物件,如果需要更換產品,只需修改靜態工廠方法中的引數即可,例如將柱狀圖改為餅狀圖,只需將**:

chart = chartfactory.getchart("histogram");

改為:chart = chartfactory.getchart("pie");

編譯並執行程式,輸出結果如下:

建立餅狀圖!

初始化設定餅狀圖!

顯示餅狀圖!

為了將chart類的職責分離,同時將chart物件的建立和使用分離,sunny軟體公司開發人員決定使用簡單工廠模式對圖表庫進行重構,重構後的結構如圖2所示:

圖2 圖表庫結構圖

在圖2中,chart介面充當抽象產品類,其子類histogramchart、piechart和linechart充當具體產品類,chartfactory充當工廠類。完整**如下所示:

//抽象圖表介面:抽象產品類

inte***ce

chart

//柱狀圖類:具體產品類

class

histogramchart

implements

chart

public

void

display

()}//餅狀圖類:具體產品類

class

piechart

implements

chart

public

void

display

()}//折線圖類:具體產品類

class

linechart

implements

chart

public

void

display

()}//圖表工廠類:工廠類

class

chartfactory

else

if (type.equalsignorecase("pie"))   else

if (type.equalsignorecase("line"))   return chart; }}

編寫如下客戶端測試**:

class

client

}

編譯並執行程式,輸出結果如下:

建立柱狀圖!

初始化設定柱狀圖!

顯示柱狀圖!

在客戶端測試類中,我們使用工廠類的靜態工廠方法建立產品物件,如果需要更換產品,只需修改靜態工廠方法中的引數即可,例如將柱狀圖改為餅狀圖,只需將**:

chart = chartfactory.getchart("histogram");

改為:chart = chartfactory.getchart("pie");

編譯並執行程式,輸出結果如下:

建立餅狀圖!

初始化設定餅狀圖!

顯示餅狀圖!

工廠三兄弟之簡單工廠模式(三)

為了將chart類的職責分離,同時將chart物件的建立和使用分離,sunny軟體公司開發人員決定使用簡單工廠模式對圖表庫進行重構,重構後的結構如圖2所示 在圖2中,chart介面充當抽象產品類,其子類histogramchart piechart和linechart充當具體產品類,chartfac...

工廠三兄弟之簡單工廠模式(三)

為了將chart 類的職責分離,同時將 chart 物件的建立和使用分離,sunny 軟體公司開發人員決定使用簡單工廠模式對圖表庫進行重構,重構後的結構如圖 2所示 圖2 圖表庫結構圖 在圖2中,chart介面充當抽象產品類,其子類histogramchart piechart和linechart充...

工廠三兄弟之簡單工廠模式(三)

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!為了將chart類的職責分離,同時將chart物件的建立和使用分離,sunny軟體公司開發人員決定使用簡單工廠模式對圖表庫進行重構,重構後的結構如圖2所示 圖2 圖表庫結構圖 在圖2中,chart介面充當抽象產品類,其子類histogramchar...