策略模式-Java实现
策略模式:一个类的行为(或策略)可以在运行时更改。
如对一个数组排序,可以使用不同的排序策略,有选择排序、冒泡排序、快速排序等。
在程序运行过程中,可以根据不同的条件选择相应的排序算法。
Java 实现策略模式:
步骤 1:创建策略接口
public interface SortStrategy {public int[] sort(int[] array);
}
步骤 2:实现策略接口的具体类,这里实现了 3 个具体的排序策略类
public class SelectSort implements SortStrategy{@Overridepublic int[] sort(int[] array) {// select sort ...return array;}
}public class BubbleSort implements SortStrategy{@Overridepublic int[] sort(int[] array) {// bubble sort ...return array;}
}public class QuickSort implements SortStrategy{@Overridepublic int[] sort(int[] array) {// quick sort ...return array;}
}
步骤 3:创建策略的上下文类
public class Context {private SortStrategy strategy;public Context(SortStrategy strategy){this.strategy = strategy;}public int[] executeStrategy(int[] array){return strategy.sort(array);}public void changeStrategy(SortStrategy strategy) {this.strategy = strategy;}
}
步骤 4:使用Context来改变策略
public class StrategyPatternDemo {public static void main(String[] args) {int[] array = new int[] {6, 5, 9, 2, 7, 3};int[] sortArray = null;//选择排序Context context = new Context(new SelectSort());sortArray = context.executeStrategy(array);print(sortArray);//冒泡排序context.changeStrategy(new BubbleSort()); sortArray = context.executeStrategy(array);print(sortArray);//快速排序context.changeStrategy(new QuickSort()); sortArray = context.executeStrategy(array);print(sortArray);}
}
策略模式-Java实现相关推荐
- [设计模式] - 策略模式(Java篇)
来源:http://user.qzone.qq.com/31584 (QQ空间) http://b.qzone.qq.com/cgi-bin/blognew/blog_output_data?uin= ...
- 策略模式java 用例_java策略模式简单用例
运用java策略模式一个小程序 /** * */ package Strategy; import java.util.Arrays; /** * @author HuangRong * @Funti ...
- java策略模式(Java策略模式多种返回结果)
Java设计模式的中介者模式是怎样的? 如果对象之间的关系原本一目了然,中介对象的加入便是"画蛇添足". 来看下中介者模式的组成部分吧. 1) 抽象中介者(Mediator)角色: ...
- 设计模式--策略模式--Java实现
***策略模式4步走***
- Java设计模式之行为型:策略模式
一.背景: 在开发中经常遇到这种情况,实现某个功能有多种算法策略,我们可以根据不同环境或者条件选择不同的算法策略来完成该功能,比如查找.排序等,一种常用方式是硬编码在一个类中,如需要提供多种查找算法, ...
- Strategy策略模式
策略模式定义了一系列算法,把它们一个个封装起来,并且使它们可相互替换.该模式可使得算法能独立于使用它的客户而变化.Strategy模式是行为模式,正因为他是一种行为模式,所以他不是用来解决类的实例化的 ...
- 策略模式示例代码_策略设计模式示例
策略模式示例代码 本文是我们名为" Java设计模式 "的学院课程的一部分. 在本课程中,您将深入研究大量的设计模式,并了解如何在Java中实现和利用它们. 您将了解模式如此重要的 ...
- 设计模式 | 策略模式及典型应用
本文的主要内容: 介绍策略模式 示例 商场购物打折策略的实现 策略模式总结 源码分析策略模式的典型应用 Java Comparator 中的策略模式 Spring Resource 中的策略模式 Sp ...
- Java中的策略模式实例教程
策略模式是一种行为模式.用于某一个具体的项目有多个可供选择的算法策略,客户端在其运行时根据不同需求决定使用某一具体算法策略. 策略模式也被称作政策模式.实现过程为,首先定义不同的算法策略,然后客户端把 ...
最新文章
- 12个现实世界中的机器学习真相
- Microbiome:使用16S rRNA基因数据集实现种水平的分类
- SalttSack自动化运维(四)——JINJA模块
- Mac OS X中MacPorts安装和使用
- SAP ABAP实用技巧介绍系列之Debug XSLT transformation
- 汇总区间Python解法
- javax.servlet.jsp.JspTagException:
- 小程序-实现 tab-及多个列表选项切换
- ps放大素色图标(黑色特别有效)
- SpringBoot Spring Cloud项目学习汇总
- [心得]怪诞心理学精华笔记
- 操作系统学习笔记02【进程控制——进程互斥的硬件实现方法】【自用】
- 取消唤醒计算机需要密码怎么设置密码,Win10唤醒睡眠时需要输入密码如何取消_win10系统取消唤醒密码的方法...
- 什么是SOL注入攻击?Land攻击?Ping of Death攻击?Teardrop攻击?
- sonar本地扫描,没有胡里花哨的操作,通俗易懂~
- 中国信息安全测评中心-自主原创测评
- Android中HorizontalScrollView的使用总结
- Qt5 学习之路及嵌入式开发教程11:Qt5标准输入对话框类及QSlider控件
- JS字符串截取 “指定字符” 前面和后面的内容!
- bigdecimal不等于0怎么写_不了解这些练习技巧,你怎么能写好毛笔字?