C#-简单工厂模式
一、 简单工厂模式: 简单工厂模式根据提供给它的数据,返回几个可能类中的一个类的实例。通常它返回的类都有一个公共的父类和公共的方法。
二、 简单工厂模式角色与结构:
工厂类角色Creator:工厂类在客户端的直接控制下(Create方法)创建产品对象。
抽象产品角色Product :定义简单工厂创建的对象的父类或它们共同拥有的接口。可以是一个类、抽象类或接口。
具体产品角色ConcreteProduct :定义工厂具体加工出的对象。
程序举例: 根据用户的需求来创建具体的笔记本电脑的对象。
/// <summary>
/// 抽象的产品类父类,及父类中抽象的方法
/// </summary>
public abstract class NoteBook
{
public abstract void ShowBrand();
}
/// <summary>
/// 子类,联想笔记本类
/// </summary>
public class Lenovo : NoteBook
{
public override void ShowBrand()
{
Console.WriteLine("我是联想笔记本,NB...");
}
}
/// <summary>
/// 生产产品的工厂类
/// </summary>
public static class Factory
{
/// <summary>
/// 根据用户的需求来创建生产对应的产品的
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static NoteBook GetProduct(string str)
{
NoteBook nb = null;
switch (str)
{
case "lenovo": nb = new Lenovo();
break;
case "acer": nb = new Acer();
break;
case "dell": nb = new Dell();
break;
case "hp": nb = new HP();
break;
case "ibm": nb = new IBM();
break;
}
return nb;
}
}
Console.WriteLine("我们工厂可以生产:lenovo,acer,dell,hp,ibm,请输入你想要的产品信息:");
string strProduct = Console.ReadLine();
<pre name="code" class="csharp"> NoteBook nb= Factory.GetProduct(strProduct); //调用工厂类中创建具体对象 的方法。
nb.ShowBrand();
Console.ReadKey();