工厂方法模式(FACTORY METHOD)是属于创建型模式。工厂方法提供一个创建一系列相关或相互依赖的对象的接口,而无需指定它们具体的类。相比简单工厂模式,工厂方法不在工厂类中做决策,而是把这个决策推迟到每个用到他的地方。
优点
用户只需要关心所需产品的对应工厂,无需关心细节
加入新产品符合开闭原则,提高可扩展性
缺点
类的个数容易过多,增加复杂度
增加了系统的抽象性和理解难度
C#代码:
using System;
namespace ConsoleApp
{
public interface IBird
{
string Talk();
}
public class Dove : IBird
{
public Dove()
{
}
public string Talk()
{
return "I am a dove";
}
}
public class Eagle : IBird
{
public Eagle()
{
}
public string Talk()
{
return "I am a eagle!";
}
}
public interface IBirdFactory
{
IBird CreateBird();
}
public class DoveFactory : IBirdFactory
{
public IBird CreateBird()
{
return new Dove();
}
}
public class EagleFactory : IBirdFactory
{
public IBird CreateBird()
{
return new Eagle();
}
}
public class Program
{
static void Main(string[] args)
{
string talkContent;
DoveFactory doveFactory = new DoveFactory();
talkContent = doveFactory.CreateBird().Talk();
Console.WriteLine(talkContent);
EagleFactory eagleFactory = new EagleFactory();
talkContent = eagleFactory.CreateBird().Talk();
Console.WriteLine(talkContent);
Console.Read();
}
}
}