初试简单工厂

首先创建抽象角色 

 public abstract class yao
{
public abstract void eat();

}
 

定义了药的总类输出方法,下面的类是根据每个药品修改自己的内容,都继承自yao

class 感冒药 : yao
{
public override void eat()
{
Console.WriteLine("我吃了感冒药");
}
}
class 发烧药 : yao
{
public override void eat()
{
Console.WriteLine("我吃了发烧药");
}
}
class 头疼药 : yao
{
public override void eat()
{
Console.WriteLine("我吃了头疼药");
}
}
class 牙疼药 : yao
{
public override void eat()
{
Console.WriteLine("我吃了牙疼药");
}
}

 

需要客户端输出的病的种类 public enum bing {感冒,发烧,头疼,牙疼 };  这是客户端的

接下来定义医生类 也就是简单工厂

简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。

class yisheng
{

  public static yao Create(bing bi)            ///创建yao的输出 传入枚举病
{
  yao yyy = null;         ///yao一上来为空  接下来满足付值
switch (bi)
{
case bing.发烧:
yyy = new 发烧药(); 
break;
case bing.头疼:
yyy = new 头疼药();
break;
case bing.牙疼:
yyy = new 牙疼药();
break;
case bing.感冒:
yyy = new 感冒药();
break;
}
return yyy;
}
}
 

最后客户端输出病,调用yisheng方法

public static class Program
{

static void Main(string[] args)
{
yao y = yisheng.Create(bing.感冒);
y.eat();
}
  }

工厂类是整个模式的关键.包含了必要的逻辑判断,根据外界给定的信息,决定究竟应该创建哪个具体类的对象.
 

初次使用还有太多不太明白...希望不给大家产生误导

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值