策略模式,简单工厂模式结合
来源:互联网 发布:域名备案号在哪里查 编辑:程序博客网 时间:2024/05/04 01:53
概念:定义了算法家族,分别封装起来。让他们之间可以相互替换,随着算法的变换,不会影响客户端代码。
!图自己看,Context与Strategy聚合
//定义抽象策略类public abstract class Strategy { /** * @describe 定义抽象策略的方法,容易扩展不同策略 * @param a * @param b * @return */ public abstract int strategy(int a,int b);};//具体策略public class AddStrategy extends Strategy{ /** * @describe 定义抽象策略的方法,容易扩展不同策略 * @param a * @param b * @return 定义实现加法的策略方法,定义公共的方法(返回) */ public int strategy(int a, int b) { return a+b; }}public class SubStrategy { //定义减法的策略方法 public int strategy(int a, int b) { return a-b; }}public class MultiplyStrategy { //定义乘法的策略方法 public int strategy(int a,int b) { return a*b; }}public class DivStrategy { //定义除法的策略方法,这里为了简单就不考虑除数为零的情况了 public int strategy(int a,int b) { return a/b; }}/** * * @author Administrator * @descripe 策略引用类,目的是将客户端与策略类分离 */public class Context { //持有抽象策略角色的引用,用于客户端调用 private Strategy strategy; //获得策略类 public Strategy getStrategy() { return strategy; } //设置所需策略 public void setStrategy(Strategy strategy) { this.strategy = strategy; } //根据设置的策略类返回对应的结果 public int getResult(int a,int b) { return strategy.strategy(a, b); }}
简单工厂与策略模式结合
目的:工厂类与策略类的引用类结合,减少代码的耦合度,只需知道Factory,Context俩类即可。将工厂类解放出来!
//工厂类public class Factory { public Strategy createStrategy(String str) { if("AddStrategy".equalsIgnoreCase(str)) { return new AddStrategy(); } else if("SubStrategy".equalsIgnoreCase(str)) { return new SubStrategy(); } else if("DivStrategy".equalsIgnoreCase(str)) { return new DivStrategy(); } else if("MultiplyStrategy".equalsIgnoreCase(str)) { return new MultiplyStrategy(); } else return null; }}/** * 客户端 * @author * Client */public class Client { public static void main(String[] args) { Context context = new Context(); int result; Strategy strategy; Factory fac = new Factory(); strategy = fac.createStrategy("AddStrategy"); context.setStrategy(strategy); result = context.getResult(9, 3); System.out.println(result); }}
阅读全文
1 0
- 策略模式结合简单工厂模式
- 策略模式,简单工厂模式结合
- 简单工厂与策略模式的结合
- 策略模式与简单工厂结合
- 策略模式及与简单工厂模式的结合
- 大话设计模式学习 策略和简单工厂模式结合
- 策略模式与简单工厂模式的结合使用
- 设计模式实现(二)---策略模式、策略模式与简单工厂模式结合使用
- 设计模式_改进策略模式_策略模式与简单工厂模式结合(Java)
- 策略+简单工厂模式
- 策略模式+简单工厂
- 3.续策略模式 策略模式与简单工厂模式结合
- 简单工厂模式 & 策略模式
- 简单工厂模式&策略模式
- 策略模式 + 简单工厂模式
- 简单工厂模式 & 策略模式
- 设计模式——《大话设计模式》——简单工厂模式+策略模式+策略与简单工场结合
- 策略模式和简单工厂+策略模式
- ViewPager嵌套ViewPager
- JavaScript 三元运算符
- java实现自定义数字验证码以及使用方法
- 华清远见ARM考试复习题
- C++11的右值引用
- 策略模式,简单工厂模式结合
- python输出Unicode和Str连接的字符串
- 打包 ipa 文件给别人下载,下载安装桌面无反应(点击安裝后无任何反应)
- Java的JVM GC(Garbage Collection)垃圾回收原理机制及算法
- mac安装ns3仿真平台
- 进程同步(操作系统)
- JSON.parse()和JSON.stringify()
- Java多线程系列(五)—LockSupport源码分析
- RPI.GPIO使用手册