博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
策略模式
阅读量:7043 次
发布时间:2019-06-28

本文共 990 字,大约阅读时间需要 3 分钟。

  hot3.png

###定义:

  • 分别封装行为接口、实现算法族。
  • 父类里设置行为接口对象。
  • 子类里设置行为实现对象。

分离变化部分,封装接口,基于接口开发各种功能。此模式让行为算法的变化独立于算法的使用者。

###Demo

public abstract class Duck {    FlyBehavior flyBehavior;    public void fly(){        if(flyBehavior==null) System.out.println("Duck no fly!");        flyBehavior.fly();    }    public abstract void display();    public void setFlyBehavior(FlyBehavior flyBehavior){        this.flyBehavior = flyBehavior;    }}
public class GreenDuck extends Duck {    public GreenDuck(){        flyBehavior = new MaxFlyBehavior();    }    @Override    public void display() {        System.out.println("~~~GreenDuck");    }}
public interface FlyBehavior {    void fly();}
public class MaxFlyBehavior implements FlyBehavior {    @Override    public void fly() {        System.out.println("***Max Fly***");    }}
public class Main {    public static void main(String[] args) {        Duck duck = new GreenDuck();        duck.fly();        duck.display();    }}

转载于:https://my.oschina.net/icanos/blog/713138

你可能感兴趣的文章
让ie支持阴影、圆角和渐变
查看>>
Debian下Apache配置多域名访问
查看>>
volatile关键字应用之外设寄存器
查看>>
PowerShell检测并添加用户权限
查看>>
CCNP笔记——MST上
查看>>
php5中const、define和static
查看>>
HNUSTOJ-1695 跳格子(略感头疼)
查看>>
Python 代码规范
查看>>
DNS服务的配置与管理(2) DNS的理论知识
查看>>
安装rmp包,创建yum仓库,和制作yum源的前提条件是挂载光盘
查看>>
管道的内部结构
查看>>
360笔试---linux分区 目录 挂载点
查看>>
su命令、sudo命令、限制root远程登录
查看>>
我的友情链接
查看>>
ATS代码分析概述
查看>>
eclipse安装问题
查看>>
员工管理系统
查看>>
看我说PHP之文件上传
查看>>
WHATWG
查看>>
Java基础异常
查看>>