using System;
namespace IndependenceReverseTest1
{
class Program
{
static void Main(string[] args)
{
//通过传入不同的对象new PowerSupply() 与 new BadPowerSupply()
//DeskFan 中的IpowerSupply _powerSupply 可以实现不同的方法
//DeskFan 的构造函数也是IpowerSupply 类型, 可以传入继承IpowerSupply的一切方法
var test1 = new DeskFan(new PowerSupply());
var test2 = new DeskFan(new BadPowerSupply());
Console.WriteLine(test1.Work());
Console.WriteLine("--------------------");
Console.WriteLine(test2.Work());
Console.ReadKey();
}
interface IpowerSupply
{
int GetPower();
}
class PowerSupply : IpowerSupply
{
public int GetPower()
{
return 100;
}
}
class BadPowerSupply : IpowerSupply
{
public int GetPower()
{
return 500;
}
}
class DeskFan
{
private IpowerSupply _powerSupply;
public DeskFan(IpowerSupply powerSupply)
{
_powerSupply = powerSupply;
}
public string Work()
{
int power = _powerSupply.GetPower();
if (power <= 0)
{
return "Can not work!";
}
else if (power < 100)
{
return "Slow!";
}
else if (power < 200)
{
return "Work fine!";
}
else
{
return "FBI Waring!";
}
}
}
}
}