《Head First设计模式》读书笔记一 策略模式

读书笔记

策略模式

用算法簇去定义,封装起来;这种模式可以是算法独立起来,更加好的调用。

Note:在界面调用的时候尽量是用接口定义而不是方法定义

//不推荐
Dog dog=new Dog();    

//推荐,Dog是Animal的实现类
Animal dog=new Dog(); 

这种模式的定义可以方便的使用,扩展性也会比较好

算法推荐的模式:

public class DuckDemo implements Duck {
    //用全局变量去扩展
    //用接口去带来扩展性,默认属性
    private FlyAbility flyAbility =new FlyWithoutWings();
    private QuackAbility quackAbility = new Gugu();

    //通过set方法,去修改属性
    public void setFlyAbility(FlyAbility flyAbility) {
        this.flyAbility = flyAbility;
    }

    public void setQuackAbility(QuackAbility quackAbility) {
        this.quackAbility = quackAbility;
    }
	
	... ...
}

测试方法:

public class TestCase {
    public static void main(String[] args){
        //面向接口变成,不要变成对象;带来扩展性
        Duck duck=new DuckDemo();
        ((DuckDemo) duck).fly();
        ((DuckDemo) duck).setFlyAbility(new FlyWithWings());
        ((DuckDemo) duck).fly();
    }
}

在这里插入图片描述
测试代码分享:https://gitee.com/eason93/HeadFirstDemo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值