简单工厂简单写
實例說明:某窮工廠生產汽車零配件,只制作車窗和車門。
?
首先把零部件抽象成一個類Hardware.cs:
Code
using?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.Text;
namespace?SimpleFactory
{
????public?abstract?class?Hardware
????{
????????public?string?hardwareName?{?get;?set;?}
????????public?virtual?string?GetHardware()?
????????{
????????????return?"";
????????}
????}
}
?
具體產品(車窗和車門)繼承自該類,車窗類CarWindows.cs
Code
using?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.Text;
namespace?SimpleFactory
{
????class?CarWindows:Hardware
????{
????????public?CarWindows(string?name)
????????{
????????????this.hardwareName?=?name;
????????}
????????public?override?string?GetHardware()
????????{
????????????return?"this?is?:?"?+?this.hardwareName;
????????}
????}
}
?
車門類CarDoors.cs
Code
using?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.Text;
namespace?SimpleFactory
{
????public?class?CarDoors:Hardware
????{
????????public?CarDoors(string?name)
????????{
????????????this.hardwareName?=?name;
????????}
????????public?override?string?GetHardware()
????????{
????????????return?"this?is?:?"?+?this.hardwareName;
????????}
????}
}
?
簡單工廠的核心類集中了所有的判斷邏輯,決定返回什么對象,其中的主要方法一般聲明成靜態方法,所以又稱靜態工廠。
CarFactory.cs:
?
Codeusing?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.Text;
namespace?SimpleFactory
{
????public?class?CarDoors:Hardware
????{
????????public?CarDoors(string?name)
????????{
????????????this.hardwareName?=?name;
????????}
????????public?override?string?GetHardware()
????????{
????????????return?"this?is?:?"?+?this.hardwareName;
????????}
????}
}
?
好了,現在可以在客戶端測試了。
?
Codeusing?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.Text;
namespace?SimpleFactory
{
????class?Program
????{
????????static?void?Main(string[]?args)
????????{
????????????Hardware?hardware?=?CarFactory.CreateHareware("doors");
????????????Console.WriteLine(hardware.hardwareName);
????????????Console.Read();
????????}
????}
}
?
?
??????Tips:簡單工廠的產品類一般為具有某些共同特征的類,種類較多時可抽象出多個抽象產品類。
簡單工廠不大復雜,就這么簡單寫好了,以后再研究其他設計模式,希望能把23種設計模式寫完。
轉載于:https://www.cnblogs.com/flyman/archive/2009/08/01/1536451.html
總結
- 上一篇: [Flex]Flex SDK 4(Gum
- 下一篇: windows远程连接的几个问题