策略模式的实现
来源:互联网 发布:mac转换视频格式软件 编辑:程序博客网 时间:2024/05/17 02:45
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("有火箭带也能飞");
}
}
- 策略模式的实现
- 策略模式的实现
- 一个策略模式的实现
- 策略模式的C++实现
- 设计模式: 策略模式的实现
- 设计模式--策略模式的python实现
- 策略模式的实现的简单Demo
- 策略模式--策略实现的封装性和随意扩展性
- 利用策略模式实现的线程同步
- 策略模式的java实现例子
- 策略模式C++实现
- 策略模式实现
- c++ 实现策略模式
- 策略模式c++实现
- JS实现策略模式
- C++实现策略模式
- 策略模式 C++ 实现
- 策略模式-java实现
- C/C++相关资源
- 框架和设计模式的关系
- 第二节 make工程管理器
- sql 语句
- 装饰模式
- 策略模式的实现
- GridView中显示时间日期格式问题
- 工厂方法模式
- 简单工厂模式的实现
- IOS 学习笔记(四)ios理解
- 50个C/C++源代码网站
- 设计模式原则
- Change Log of Joomsport: Add two fields to season table
- Digester解析xml文档