最近突然对设计模式比较感兴趣了,想要创建个.net 设计模式的专题。欢迎大家来贡献demo吧
工厂模式比较简单,话不多说,奖金奉上,Demo拿来
最佳解决方案
工厂模式属于比较简单也常用的设计模式,属于创建型模式,它提供了一种创建对象的最佳方式。工厂模式Asp.Net / C#的demo如下:
static void Main(string[] args)
{
IAreaFormula formula = Factory.GetFormula("triangle");
formula.Calculate();
formula = Factory.GetFormula("square");
formula.Calculate();
}
/// <summary>
/// 计算面积的接口 - C# 工厂模式Demo
/// </summary>
public interface IAreaFormula
{
decimal Calculate();
}
/// <summary>
/// 正方形
/// </summary>
public class Square : IAreaFormula
{
public decimal Calculate()
{
Console.WriteLine("正方形面积计算");
return 4;
}
}
/// <summary>
/// 三角形
/// </summary>
public class Triangle : IAreaFormula
{
public decimal Calculate()
{
Console.WriteLine("三角形面积计算");
return 3;
}
}
/// <summary>
/// 工厂模式
/// </summary>
public class Factory
{
/// <summary>
/// 创建相应对象
/// </summary>
/// <param name="figure"></param>
/// <returns></returns>
public static IAreaFormula GetFormula(string figure)
{
switch (figure)
{
case "triangle":
return new Triangle();
case "square":
return new Square();
default:
return null;
}
}
}