這兩個工廠和具體的產品之間是平行的結構,并一一對應,并在它們的基礎上抽象出一個公用的接口,結構圖如下:
實現代碼如下:
1/**//// <summary>
2/// LogFactory類
3/// </summary>
4public abstract class LogFactory
5{
6 public abstract Log Create();
7}
8
此時兩個具體工廠的代碼應該如下:
1/**//// <summary>
2/// EventFactory類
3/// </summary>
4public class EventFactory:LogFactory
5{
6 public override EventLog Create()
7 {
8 return new EventLog();
9 }
10}
11/**//// <summary>
12/// FileFactory類
13/// </summary>14public class FileFactory:LogFactory
15{
16 public override FileLog Create()
17 {
18 return new FileLog();
19 }
20}
21
原文轉自:http://www.anti-gravitydesign.com