策略模式---Java记录

C#设计模式 同时被 3 个专栏收录
4 篇文章 0 订阅
27 篇文章 0 订阅
5 篇文章 1 订阅

前言

   这几天通过《HeadFirst》这本书,我再一次开始对对设计模式的学习并通过JAVA的代码来进行实践。希望我的学习记录和分享可以帮助您有新的认识,也欢迎您的留言沟通。

历程

   程序代码的完善是随着一条故事的主线来发展的,更据不同的环境目标需求会有新的设计和编写。故事的起点仅仅只是一个简单的OO技术的应用,一个类的继承。
   但是当涉及“维护”时,为了“复用”(reuse)目的而使用继承,结局并不完美。所以便有了下面的设计,附上一张类图
   
这里写图片描述

public abstract class Duck {    //Duck抽象类
    FlyBehavior flyBehavior;
    QuackBehavior quackBehavior;
    public abstract void display();
    public void performFly(){
        flyBehavior.fly();
    }
    public void performQuack(){
        quackBehavior.quack();
    }
    public void swim(){
        System.out.println("I Can Swim ");
    }
}

动态的设定方法:
这里写图片描述

public abstract class Duck {
    FlyBehavior flyBehavior;
    QuackBehavior quackBehavior;

    public Duck() {
    }

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

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

    abstract void display();

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

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

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

思考

   OO编程与设计模式的关系

小结

   荣幸与您分享!

  • 1
    点赞
  • 9
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 程序猿惹谁了 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值