这是通过工厂方法模式编写的代码,关于代码的构想如下:
部分代码展示如下:
1.cars类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 工厂方法模式作业
{
class Car
{
private Engine _engine;
public Engine engine
{
get { return _engine; }
set { _engine = value; }
}
public void Drive()
{
_engine.launch();
Console.Write("汽车启动了。");
}
}
}
2.Engine类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 工厂方法模式作业
{
class Engine
{
public virtual void launch()
{
}
}
class GasolineEngine:Engine
{
public override void launch()
{
Console.Write("汽油发动机已经启动了");
}
}
class SolarEngine : Engine
{
public override void launch()
{
Console.Write("太阳能发动机已经启动了");
}
}
class NuclearEngine : Engine
{
public override void launch()
{
Console.Write("核能发动机已经启动了");
}
}
}
3 IEngineFactory类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 工厂方法模式作业
{
interface IEngineFactory
{
Engine MakeEngine();
}
class GaosolineEngineFactory:IEngineFactory
{
public Engine MakeEngine()
{
return new GasolineEngine();
}
}
class SolarEngineFactory : IEngineFactory
{
public Engine MakeEngine()
{
return new SolarEngine();
}
}
class NuclearEngineFactory : IEngineFactory
{
public Engine MakeEngine()
{
return new NuclearEngine();
}
}
}
4.Program类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 工厂方法模式作业
{
class Program
{
static void Main(string[] args)
{
Console.Write("请根据不同的动力G/S/N,来选择不同动力的小汽车");
string Select = Console.ReadLine();
IEngineFactory enginefactory = null;
switch (Select)
{
case "G":
enginefactory = new GaosolineEngineFactory();
break;
case "S":
enginefactory = new SolarEngineFactory();
break;
case "N":
enginefactory = new NuclearEngineFactory();
break;
}
Car car1 = new Car();
car1.engine = enginefactory.MakeEngine();
car1.Drive();
Console.ReadLine();
}
}
}
通过这次实验,发现自己对于工厂方法模式的代码编写方式有了初步的了解,希望以后以后能够进一步的学习了解,弥补自己编程方面的不足之处。
原文:http://www.cnblogs.com/glaaa/p/5090342.html