美文网首页
策略模式

策略模式

作者: 少艾_91df | 来源:发表于2018-07-01 16:20 被阅读0次

    1.官方定义:策略模式将可变的部分从程序中抽离成算法接口,在该接口下分别封装一些类算法的实现。
    2.使用的场景:
    (1)许多相关的类仅仅是行为差异。
    (2)运行时选取不同的算法变体。
    (3)通过条件语句在多个分支中选取一样。
    3.关键代码:
    超类:组合一个策略接口

    private FlyingStragety flyingStragety;
        
        public void setFlyingStragety(FlyingStragety flyingStragety) {
            this.flyingStragety = flyingStragety;
        }
        
        public void fly(){
            flyingStragety.performFly();
        }
    

    具体的子类:传递一个策略的实现

        public RedheadDuck(){
            super();
            super.setFlyingStragety(new FlyWithWin());
        }
    

    策略接口:

    public interface FlyingStragety {
         void performFly();
    }
    

    策略接口的实现:

    public class FlyNoWay implements FlyingStragety{
    
        @Override
        public void performFly() {
            System.out.println("我不会飞行!");       
        }
         
    }
    

    相关文章

      网友评论

          本文标题:策略模式

          本文链接:https://www.haomeiwen.com/subject/fxwcuftx.html