策略模式

2019-12-03 16:14:40来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

策略模式

一、策略模式的概念

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

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

二、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("七星刀");
    }
}

 


原文链接:https://www.cnblogs.com/mgblogs/p/11963792.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:JavaWeb创建一个公共的servlet

下一篇:SpringBoot"热"部署解决方案