极速理解设计模式系列:21.简单工厂模式(Simple Factory Pattern)

简介:

四个角色:抽象产品(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 下载。



本文转自程兴亮博客园博客,原文链接http://www.cnblogs.com/chengxingliang/archive/2011/12/12/2283466.html:,如需转载请自行联系原作者

相关文章
|
11天前
|
设计模式 SQL 算法
设计模式了解哪些,模版模式
设计模式了解哪些,模版模式
19 0
|
30天前
|
设计模式 Java uml
C++设计模式之 依赖注入模式探索
C++设计模式之 依赖注入模式探索
37 0
|
3月前
|
设计模式 存储 算法
Java 设计模式最佳实践:三、行为模式
Java 设计模式最佳实践:三、行为模式
|
2月前
|
设计模式 前端开发 JavaScript
观察者模式 vs 发布-订阅模式:两种设计模式的对决!
欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴趣、刚刚开始学习前端的读者们打造的。无论你是初学者还是有一些基础的开发者,我们都会在这里为你提供一个系统而又亲切的学习平台。我们以问答形式更新,为大家呈现精选的前端知识点和最佳实践。通过深入浅出的解释概念,并提供实际案例和练习,让你逐步建立起一个扎实的基础。无论是HTML、CSS、JavaScript还是最新的前端框架和工具,我们都将为你提供丰富的内容和实用技巧,帮助你更好地理解并运用前端开发中的各种技术。
|
7天前
|
设计模式 Java 数据库
小谈设计模式(2)—简单工厂模式
小谈设计模式(2)—简单工厂模式
|
5天前
|
设计模式 存储 Java
Java设计模式:解释一下单例模式(Singleton Pattern)。
`Singleton Pattern`是Java中的创建型设计模式,确保类只有一个实例并提供全局访问点。它通过私有化构造函数,用静态方法返回唯一的实例。类内静态变量存储此实例,对外仅通过静态方法访问。
12 1
|
7天前
|
设计模式 Java
小谈设计模式(9)—工厂方法模式
小谈设计模式(9)—工厂方法模式
|
1月前
|
设计模式 编译器
解析器模式--设计模式
解析器模式--设计模式
17 0
|
1月前
|
设计模式 算法
构建器模式--设计模式
构建器模式--设计模式
17 0
|
1月前
|
设计模式
【设计模式】中介模式
【设计模式】中介模式