using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 工厂模型
{
class Program
{
static void Main(string[] args)
{
shape shape1 = ShapeFactory.getShape(ShapeType.Circle);
shape1.draw();
shape shape2 = ShapeFactory.getShape(ShapeType.Rectangle);
shape2.draw();
shape shape3 = ShapeFactory.getShape(ShapeType.Square);
shape3.draw();
shape shape4 = ShapeFactory.getShape(ShapeType.Triangle);
shape4.draw();
Console.ReadKey();
}
}
public interface shape//定义一个接口
{
void draw();
}
public class Rectangle : shape
{
public void draw()
{
Console.WriteLine("矩形实现形状的接口方法draw()。");
}
}
public class Square : shape
{
public void draw()
{
Console.WriteLine("正方形实现形状的接口方法draw()。");
}
}
public class Circle : shape
{
public void draw()
{
Console.WriteLine("圆形实现形状的接口方法draw()。");
}
}
public class Triangle : shape
{
public void draw()
{
Console.WriteLine("三角形实现形状的接口方法draw()。");
}
}
public enum ShapeType//枚举
{
Rectangle,
Square,
Circle,
Triangle
}
public class ShapeFactory
{
public static shape getShape(ShapeType shapetype)
{
if (shapetype == ShapeType.Circle)
{
return new Circle();
}
else if (shapetype == ShapeType.Rectangle)
{
return new Rectangle();
}
else if (shapetype == ShapeType.Triangle)
{
return new Triangle();
}
else
{
return new Square();
}
}
}
}