第一次接触设计模式:
//interface
interface FlyBehavior
{
public void fly();
}
//interface的实现类
class FlyWithWings implements FlyBehavior
{
public void fly(){
System.out.println("I'm flying!");
}
}
class FlyRocketPowered implements FlyBehavior
{
public void fly()
{
System.out.println("I'm flying with a rocket!");
}
}
class FlyNoWay implements FlyBehavior
{
public void fly()
{
System.out.println("I'm can't fly!");
}
}
//鸭子super类
abstract class Duck
{
FlyBehavior flyBehavior;
//QuackBehavior quackBehavior;
public Duck(){
}
public abstract void display();
public void performFly(){
flyBehavior.fly();
}
public void setFlyBehavior(FlyBehavior fb){
flyBehavior=fb;
}
public void swim(){
System.out.println("All ducks float,even decopys!");
}
}
//MallardDuck类
class MallardDuck extends Duck
{
public MallardDuck(){
flyBehavior =new FlyWithWings();
}
public void display(){
System.out.println("I'm a real mallard duck!");
}
}
//ModelDuck类策略设计模式
class ModelDuck extends Duck
{
public ModelDuck()
{
flyBehavior=new FlyNoWay();
}
public void display(){
System.out.println("I'm a model duck");
}
}
//鸭子模拟器 MiniDuckSimulator
public class All
{
public static void main(String args[])
{
Duck mallard=new MallardDuck();//方便向下转型
mallard.performFly();
Duck model=new ModelDuck();
model.performFly();
model.setFlyBehavior (new FlyRocketPowered());
model.performFly();
}
}
分享到:
相关推荐
用c++实现的headfirst策略设计模式。并附加对应的类图。
设计模式之一:策略模式。代码来源于Head First设计模式。
springmvc +mybatis采用策略设计模式基于拦截器实现按年分表
loki库采用了高强度的c++模板设计,能充分的体现基于策略的设计模式。
代码为博客的例子,详细讲解参考:http://blog.csdn.net/lmj623565791/article/details/24116745 有问题请留言
NULL 博文链接:https://zmx.iteye.com/blog/373078
设计模式中的策略模式。根据《设计模式》一书编写
这是策略模式中的一个经典实例,通过鸭子问题,能让学习者更好的了解设计模式,这也是headfirst 设计模式中用的经典实例
设计模式--策略模式java例子
设计模式之禅之 工厂方法模式+策略模式 设计模式之禅之 工厂方法模式+策略模式
通过学习如何在代码中使用设计模式,可以更高效地构建服务器端应用,在这个过程中,你的PHP编程水平也将逐步提高。...第12章 策略设计模式的灵活性 第13章 职责链设计模式 第14章 利用观察者模式构建多设备CMS
策略模式实例策略模式实例策略模式实例策略模式实例策略模式实例
Java 经典设计模式讲解以及项目实战 设计模式简介:主要介绍各种设计模式的概念和运用场景等 设计模式综合运用:主要是笔者在实际工作中运用到的一些设计模式综合运用事例的提炼 Spring设计模式简介:主要是讲述...
c++设计模式-行为型模式-策略模式;qt工程;c++简单源码; 策略(Strategy)模式的定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于...
设计模式 ——策略模式 实验报告 详细代码 设计概要都有
设计模式-策略模式源代码 .net,策略模式,模式,设计模式 文件包中有UML策略模式详解图
这是一个基于JAVA的策略设计模式。松耦合,可扩展
走进设计模式之 策略模式(Strategy) 代码