策略模式

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("我不会飞行!");       
    }
     
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容