欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

策略模式,

来源: javaer 分享于  点击 13278 次 点评:72

策略模式,


一、策略模式的概念

策略设计模式:定义一组可以互相替换的算法或行为,在运行时动态的替换。

特点:比继承更加优雅的一种代码复用的方式。

二、UML图

定义了一个国王,国王可以随时通过setWeapon()方法更换武器ABC,将fight()方法的实现委托给w.useWeapon()。

三、代码

Character.java

public abstract class Character {
    public WeaponBehavior weapon;
    abstract void fight();
    void setWeapon(WeaponBehavior w) {
        weapon = w;
    }
}

King.java

public class King extends Character{
    King(WeaponBehavior w) {
        weapon = w;
    }
    public void fight() {
        System.out.print("The king use ");
        weapon.useWeapon();
    }
}

WeaponBehavior.java

public interface WeaponBehavior {
    void useWeapon();
}

SwordBehavior.java

public class SwordBehavior implements WeaponBehavior{
    public void useWeapon() {
        System.out.println("大宝剑");
    }
}

KnifeBehavior.java

public class KnifeBehavior implements WeaponBehavior{
    public void useWeapon() {
        System.out.println("七星刀");
    }
}

 

相关文章

    暂无相关文章
相关栏目:

用户点评