使用策略模式实现加减乘除运算
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
使用策略模式实现加减乘除运算相关推荐
- 简单工厂模式--加减乘除运算
下面基于简单的<加减乘除运算>实例来讲讲实用简单工厂模式:<备注:以后根据认识的加深,可以添加和修改内容> 需求分析:希望程序提供"加减乘除"四种功能. 功 ...
- 设计模式-策略模式(Go语言描述)
好久没有更新博客了,最近也是在忙着充电,今天这篇博客开始,我们来了解一下设计模式. 设计模式 那什么是设计模式呢?首先来看看我从百科上copy下来的概念吧. 设计模式/软件设计模式(Design pa ...
- 设计模式(一)(策略模式、观察者模式)
一:策略模式 策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户. 意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换. 主要解决:在 ...
- 如何使用 Spring 实现策略模式+工厂模式
欢迎关注方志朋的博客,回复"666"获面试宝典 一.策略模式 策略模式定义了一组算法,将每个算法都封装起来,并且使它们之间可以互换 1.策略模式主要角色 主要角色如下: 封装角色( ...
- 设计模式 -- 策略模式
2015年12月10日21:54:25 完成一个功能可能会有好几种算法或者方法来实现,通过对算法和方法的抽象,提供统一接口,不通算法,实现方式为实现类,通过注入不同的实现对象来实现算法,实现方式的灵活 ...
- Java设计模式之十一 ---- 策略模式和模板方法模式
前言 在上一篇中我们学习了行为型模式的访问者模式(Visitor Pattern)和中介者模式(Mediator Pattern).本篇则来学习下行为型模式的两个模式,策略模式(Strategy Pa ...
- 设计模式18---设计模式之策略模式(Strategy)(行为型)
1.场景模拟 简单的报价管理系统: 对于普通用户和新用户报全价 对于老客户统一折扣5% 对于大客户统一折扣10% 2.不用模式的解决方案 package demo16.strategy.example ...
- ASP.net之策略模式
设计思路: 用ASP.net设计,调用策略模式.在第一个数和第二个数的文本框中输入数值,单击录题按钮,数值保存在n1,n2文档中,把要做的题都保存完后,单击开始按钮,开始做题,做完单击判断按钮,进行判 ...
- 策略模式的扩展——策略枚举
策略枚举就是这样一个枚举: 它是一个枚举. 它是一个浓缩了的策略模式的枚举. public enum Calculator { //加法运算 ADD("+"){ public in ...
- 研磨设计模式之 策略模式--转
http://www.uml.org.cn/sjms/201009092.asp 研磨设计模式之 策略模式 2010-09-09 作者:云飞龙行 来源:云飞龙行的blog 先感谢众多朋友的支持 ...
最新文章
- powershell连接数据库_PowerShell 连接SQL Server 数据库
- python画简单花-Python竟能画这么漂亮的花,帅呆了(代码分享)
- mysql为什么要转es_MySQL用得好好的,为什么要转ES?
- tomcat自动运行磁盘任意位置上的项目、使用Maven对tomcat进行自动部署
- python中怎么创建配置文件_如何在Django中创建配置文件注册表单?
- Centos7利用fpm制作rpm包(fpm安装及使用)
- Marriage Match III HDU - 3277(二分权值 + 拆点 建边)
- UVA - 753 A Plug for UNIX(网络流)
- css html 语法,CSS基础语法
- 基于 koajs 的前后端分离实践
- python utf编码 查询_python数据库查询中文乱码
- HTML 常用选择框
- 与计算机相关的创意网名,过目不忘创意好听网名
- FlashFXP 便携版,U盘版,真正绿色
- 霍尔 磁电 光电式测数传感器的优缺点比较
- 新猿木子李:0基础学python培训教程 Python操作Redis之有序集合
- stol函数在linux下使用,C++ std::stol()、std::stoll()用法及代码示例
- 2019年终总结——我度过了幸福的一年
- JDK8的介绍下载和安装(附网盘地址)
- python输入三角形三条边长_python问题:输入三角形的三条边a,b,c,判断此三边是否可以构成三角形。等边、等腰、直角三角形?...