快捷搜索:

【Silverlight设计模式教程】21、简单工厂模式(Si

四个角色:抽象产品(Product)、详细产品(Concrete Product)、工厂(Creator)、客户端(Client)

抽象产品(Product):必要创建的各类产品的父类。这类产品有合营的接口。

详细产品(Concrete Product):必要创建的详细工具。

工厂(Creator):内部逻辑可以节制天生目标工具。

客户端(Client):实例化工厂,然后工厂根据传入参数获得各类产品。调用产品实现不合功能。

实现思路:首先将工厂实例化,然后应用工厂创建产品赋值给抽象产品的引用,然后经由过程抽象产品的公共接口调用详细产品的措施以实现功能。

类图:

利用处景:苹果公司的工厂临盆iphone 4、ipad 2、ipod nano 6。

阐发:这里多种产品都可以运行,以是有一个公共措施,然后抽象为父类。

下面我们在节制台法度榜样去演示一下若何应用Simple Factory Pattern:

一、抽象产品(Product):

//抽象产品(Product)

abstract class Apple

{

public abstract void Run();

}

二、详细产品(Concrete Product):

//详细产品(Concrete Product)

class Iphone : Apple

{

public override void Run()

{

Console.WriteLine("iphone 4 开始运行!");

}

}

//详细产品(Concrete Product)

class Ipad : Apple

{

public override void Run()

{

Console.WriteLine("ipad 2 开始运行!");

}

}

//详细产品(Concrete Product)

class IpodNano : Apple

{

public override void Run()

{

Console.WriteLine("ipod Nano 6 开始运行!");

}

}

三、工厂(Creator):

//工厂(Creator)

class AppleFactory

{

public Apple CreateApple(string productName)

{

switch (productName.ToUpper())

{

case "IPHONE":

return new Iphone();

case "IPAD":

return new Ipad();

case "IPODNANO":

return new IpodNano();

default:

return null;

}

}

}

四、客户端(Client):

//客户端(Client)

class Program

{

static void Main(string[] args)

{

AppleFactory factory = new AppleFactory();

Apple iphone= factory.CreateApple("iphone");

iphone.Run();

Apple ipad = factory.CreateApple("ipad");

ipad.Run();

Apple ipodnano = factory.CreateApple("ipodnano");

ipodnano.Run();

Console.ReadLine();

}

}

如需源码请点击 SimpleFactoryPattern.rar 下载。

您可能还会对下面的文章感兴趣: