23種設計模式 18 工廠方法模式

2021-06-27 15:54:56 字數 3005 閱讀 4700

目錄(?)

[-]

一外觀模式簡介brief introduction

二解決的問題what to solve

分離不同的兩個層

減少依賴

為新舊系統互動提供介面

三外觀模式分析analysis

外觀模式結構

源**程式執行結果

四案例分析example

場景**

五總結summary

外觀模式,為子系統的一組介面提供乙個統一的介面,此模式定義了乙個高層介面,這乙個高層介面使的子系統更加容易使用。

典型的分層例子是net三層架構,介面層與業務邏輯層分離,業務邏輯層與資料訪問層分類。這樣可以為子系統提供統一的介面和介面,降低了系統的耦合性。

隨著功能增加及程式的重構,系統會變得越來越複雜,這時增加乙個外觀可以提供乙個簡單的介面,減少他們之間的依賴。

有的時候,新系統需要舊系統的核心功能,而這個舊的系統已經很難維護和擴充套件,可以給新系統增加乙個façade類,是的新系統與façade類互動,façade類與舊系統互動素有複雜的工作。

1、子系統類subsystemone

public class subsystemone

}2、子系統類subsystemtwo

public class subsystemtwo

}3、子系統類subsystemthree

public class subsystemthree

}4、facade 外觀類,為子系統類集合提供更高層次的介面和一致的介面

public class facade

public void methoda()

public void methodb()

}5、客戶端**

假設遠端網路教育系統-使用者註冊模組包括功能有

1、驗證課程是否已經滿人

2、收取客戶費用

3、通知使用者課程選擇成功

如下圖所示

子系統類集合包括:paymentgateway類、registercourse類、notifyuser類

paymentgateway類:使用者支付課程費用

registercourse類:驗證所選課程是否已經滿人以及計算課程的費用

notifyuser類:" 使用者選擇課程成功與否"通知使用者

registrationfacade類:外觀類,提供乙個統一的介面和介面,完成課程校驗、網上支付、通知使用者功能

1、子系統類集合

1.namespacefacadepattern   

2.    for $", studentname, costtuition.tostring()));   

12.return true;   

13.           }   

14.       }   

15.     

16.       /// 

17.       /// subsystem for registration of courses   

18.       /// 

19.public classregistercourse   

20.       ", coursecode));   

25.return true;   

26.           }   

27.     

28.public intgettuitioncost(stringcoursecode)   

29.              

33.       }   

34.     

35.       /// 

36.       /// subsystem for notifying users   

37.       /// 

38.public classnotifyuser   

39.          

47.       }   

48.   }

2、外觀類façade class

1.   /// 

2.       /// the facade class that simplifies executing methods 

in the subsystems and hides implementation for the client  

3.       /// 

4.public classregistrationfacade   

5.          

16.     

17.public boolregisterstudent(stringcoursecode,stringstudentname)   

18.              

13.       }   

14.   }  

外觀模式,為子系統的一組介面提供乙個統一的介面,此模式定義了乙個高層介面,這乙個高層介面使的子系統更加容易使用。

外觀模式可以解決層結構分離、降低系統耦合度和為新舊系統互動提供介面功能。

23種設計模式 工廠方法模式

工廠方法模式 1.來個實物類介面 public inte ce phone2.實現介面,來個華為手機類 public class huaweiphone implements phone 3.來個小公尺手機類 public class xiaomiphone implements phone 4.簡...

23種設計模式(2) 工廠方法模式

定義 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類,工廠方法使乙個類的例項化延遲到其子類。型別 建立類模式 類圖 工廠方法模式 inte ce iproduct class product implements iproduct inte ce ifactory class factory ...

23種設計模式之工廠方法模式

定義 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類,工廠方法使乙個類的例項化延遲到其子類。型別 建立類模式 類圖 inte ce iproduct class product implements iproduct inte ce ifactory class factory impleme...