策略模式

看完23种设计模式的第一种设计模式-策略模式,总结如下:

设计:鸭子模型设计

鸭子:红头鸭、橡皮鸭

行为:飞、游泳

场景:红头鸭会飞,会游泳;橡皮鸭不会飞,不会游泳。

 

类图 


 测试类

public class DuckTest {
    public static void main(String[] args) {
        Duck duck = new RedheadDuck();
        duck.display();

        duck.setFlyBehavior(new FlyWithNoWing());
        duck.setSwimBehavior(new SwimWithClaw());

        duck.swimPerform();
        duck.flyPerform();
    }
}

总结

  • 把变化的代码分离出来(行为是变化的,把行为分离出来,设计成接口(便于使用多态))
  • 多用组合,少用继承(通过set方法,动态设置行为,行为可选,代码也可复用)
  • 类的单一职责(飞的类负责飞,游泳的类负责游泳)
  • 委派(好的设计,不考虑细节,只面向接口)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值