class
Program
{
static void Main(string[] args)
{
Duck duck = new MiniDuck();
duck.fly();
FlyBehavior Fly = new FlyRocketPowered();
duck.SetFlyBehavior=Fly;
duck.fly();
}
}
public abstract class Duck
{
public FlyBehavior flyBehavior;
public void fly()
{
flyBehavior.fly();
}
public FlyBehavior SetFlyBehavior
{
set
{
this.flyBehavior = value;
}
}
}
public class MiniDuck:Duck
{
public MiniDuck()
{
this.flyBehavior = new FlyWithWing();
}
}
/// <summary>
/// 飞行的接口申明
/// </summary>
public interface FlyBehavior
{
void fly();
}
/// <summary>
/// 实现飞行的接口
/// </summary>
public class FlyWithWing : FlyBehavior
{
public void fly()
{
Console.Write("我是能飞的");
}
}
public class FlyRocketPowered : FlyBehavior
{
public void fly()
{
Console.Write("有火箭带也能飞");
}
}
{
static void Main(string[] args)
{
Duck duck = new MiniDuck();
duck.fly();
FlyBehavior Fly = new FlyRocketPowered();
duck.SetFlyBehavior=Fly;
duck.fly();
}
}
public abstract class Duck
{
public FlyBehavior flyBehavior;
public void fly()
{
flyBehavior.fly();
}
public FlyBehavior SetFlyBehavior
{
set
{
this.flyBehavior = value;
}
}
}
public class MiniDuck:Duck
{
public MiniDuck()
{
this.flyBehavior = new FlyWithWing();
}
}
/// <summary>
/// 飞行的接口申明
/// </summary>
public interface FlyBehavior
{
void fly();
}
/// <summary>
/// 实现飞行的接口
/// </summary>
public class FlyWithWing : FlyBehavior
{
public void fly()
{
Console.Write("我是能飞的");
}
}
public class FlyRocketPowered : FlyBehavior
{
public void fly()
{
Console.Write("有火箭带也能飞");
}
}