码迷,mamicode.com
首页 > 其他好文 > 详细

工厂方法模式

时间:2015-12-31 00:07:43      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:

这是通过工厂方法模式编写的代码,关于代码的构想如下:

 

 

技术分享

部分代码展示如下:

    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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!