首先创建抽象角色
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();
}
}
工厂类是整个模式的关键.包含了必要的逻辑判断,根据外界给定的信息,决定究竟应该创建哪个具体类的对象.
初次使用还有太多不太明白...希望不给大家产生误导