public interface Strategy
{public  int method(int x,int y);
}
//抽象策略角色,由抽象类或者接口实现public class AddStrategy implements Strategy
{public int method(int x,int y){return x+y;}
}
//加法的实现类public class SubStrategy implements Strategy
{public int method(int x,int y){return x-y;}
}
//减法的实现类public class MulityStrategy implements Strategy
{public int method (int x,int y){return x*y;}
}
//乘法的实现类public class ChuStrategy implements Strategy
{public int method(int x,int y){return x/y;}
}
//除法的实现类public class MediaClass
{private Strategy strategy;public MediaClass(Strategy strategy){this.strategy=strategy;}public int calculate(int x,int y){return strategy.method(x, y);}
}
//环境角色,具有策略类的引用,供给客户调用!!!public class CalcuTest
{public static void main(String args[]){MediaClass add=new MediaClass(new AddStrategy());int addvalue=add.calculate

使用策略模式实现加减乘除运算相关推荐

  1. 简单工厂模式--加减乘除运算

    下面基于简单的<加减乘除运算>实例来讲讲实用简单工厂模式:<备注:以后根据认识的加深,可以添加和修改内容> 需求分析:希望程序提供"加减乘除"四种功能. 功 ...

  2. 设计模式-策略模式(Go语言描述)

    好久没有更新博客了,最近也是在忙着充电,今天这篇博客开始,我们来了解一下设计模式. 设计模式 那什么是设计模式呢?首先来看看我从百科上copy下来的概念吧. 设计模式/软件设计模式(Design pa ...

  3. 设计模式(一)(策略模式、观察者模式)

    一:策略模式 策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户. 意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换. 主要解决:在 ...

  4. 如何使用 Spring 实现策略模式+工厂模式

    欢迎关注方志朋的博客,回复"666"获面试宝典 一.策略模式 策略模式定义了一组算法,将每个算法都封装起来,并且使它们之间可以互换 1.策略模式主要角色 主要角色如下: 封装角色( ...

  5. 设计模式 -- 策略模式

    2015年12月10日21:54:25 完成一个功能可能会有好几种算法或者方法来实现,通过对算法和方法的抽象,提供统一接口,不通算法,实现方式为实现类,通过注入不同的实现对象来实现算法,实现方式的灵活 ...

  6. Java设计模式之十一 ---- 策略模式和模板方法模式

    前言 在上一篇中我们学习了行为型模式的访问者模式(Visitor Pattern)和中介者模式(Mediator Pattern).本篇则来学习下行为型模式的两个模式,策略模式(Strategy Pa ...

  7. 设计模式18---设计模式之策略模式(Strategy)(行为型)

    1.场景模拟 简单的报价管理系统: 对于普通用户和新用户报全价 对于老客户统一折扣5% 对于大客户统一折扣10% 2.不用模式的解决方案 package demo16.strategy.example ...

  8. ASP.net之策略模式

    设计思路: 用ASP.net设计,调用策略模式.在第一个数和第二个数的文本框中输入数值,单击录题按钮,数值保存在n1,n2文档中,把要做的题都保存完后,单击开始按钮,开始做题,做完单击判断按钮,进行判 ...

  9. 策略模式的扩展——策略枚举

    策略枚举就是这样一个枚举: 它是一个枚举. 它是一个浓缩了的策略模式的枚举. public enum Calculator { //加法运算 ADD("+"){ public in ...

  10. 研磨设计模式之 策略模式--转

    http://www.uml.org.cn/sjms/201009092.asp 研磨设计模式之 策略模式   2010-09-09 作者:云飞龙行 来源:云飞龙行的blog   先感谢众多朋友的支持 ...

最新文章

  1. powershell连接数据库_PowerShell 连接SQL Server 数据库
  2. python画简单花-Python竟能画这么漂亮的花,帅呆了(代码分享)
  3. mysql为什么要转es_MySQL用得好好的,为什么要转ES?
  4. tomcat自动运行磁盘任意位置上的项目、使用Maven对tomcat进行自动部署
  5. python中怎么创建配置文件_如何在Django中创建配置文件注册表单?
  6. Centos7利用fpm制作rpm包(fpm安装及使用)
  7. Marriage Match III HDU - 3277(二分权值 + 拆点 建边)
  8. UVA - 753 A Plug for UNIX(网络流)
  9. css html 语法,CSS基础语法
  10. 基于 koajs 的前后端分离实践
  11. python utf编码 查询_python数据库查询中文乱码
  12. HTML 常用选择框
  13. 与计算机相关的创意网名,过目不忘创意好听网名
  14. FlashFXP 便携版,U盘版,真正绿色
  15. 霍尔 磁电 光电式测数传感器的优缺点比较
  16. 新猿木子李:0基础学python培训教程 Python操作Redis之有序集合
  17. stol函数在linux下使用,C++ std::stol()、std::stoll()用法及代码示例
  18. 2019年终总结——我度过了幸福的一年
  19. JDK8的介绍下载和安装(附网盘地址)
  20. python输入三角形三条边长_python问题:输入三角形的三条边a,b,c,判断此三边是否可以构成三角形。等边、等腰、直角三角形?...

热门文章

  1. 上传到服务器的网页怎么显示,怎么上传网页到服务器
  2. 渗透小白1:网络扫描与网络侦察
  3. 云南盈江县发生6.1级地震 震源深度12千米
  4. window 安装 sass compass 记录
  5. data.includes is not a function
  6. 深入解析 TiFlash丨多并发下线程创建、释放的阻塞问题
  7. 浅谈无需工作量证明的加密货币
  8. 合并多个Redis dump.rdb 到一个rdb的多个database
  9. 怎样建立产品体系?(一)- 前言
  10. Matlab 画出不同位置高度的圆柱--样例