设计模式第一章 策略模式

     寒假打算花时间认真看看“Head First设计模式”,其实买了一段时间了,当时通读了一遍,了解了大概。这次打算研究记录一下,也便于以后查阅。
    第一个设计模式:策略模式(Strategy Pattern)
    定义:定义算法族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。
    原则:封装变化 多用组合,少用继承 针对接口编程,不针对实现编程
    本章以Duck为例,不同的Duck需要实现不同的动作,而且即便是相同的行为由于其类型的不同也应该是不同的表现形式。例如不同的鸭子叫起来的声音是不一样的。
    如果采用接口,则需要实现很多相同的代码,这样在代码重用方面就表现得比较差。
    文中采用的方法是将不同的实现部分用其他各种行为类封装起来,在实体类Duck中建立此种类型的接口,这样可以在实例化对象的时候可以创建不同的行为,并且可以动态的改变该类行为。
   在家没有画类图的软件,所以贴贴代码,回学校再补回来。
public   abstract   class  Duck
{

          FlyBehavior flyBehavior;

          QuackBehavior quackBehavior;

          
public Duck()
          
{
           }

           
          
public abstract void display();

          
public void performFly()
          
{
                 flyBehavior.fly();
          }


         
public void performQuack()
         
{
                quackBehavior.quack();
         }


         
public void swim()
         
{
                 System.out.println(
"All ducks float, even decoys!");
          }


         
public void setFlyBehavior(FlyBehavior fb)
         
{
                flyBehavior
=fb;
         }


          
public void setQuackBehavior(QuackBehavior qb)
          
{
              quackBehavior
=qb;
          }


}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值