本文主要讲java中的策略模式:一个可以根据不同的传入参数而具有不同行为的方法,就叫策略模式。概念可能有点不好理解,具体看下面代码:

import java.util.Arrays;

/**
* 策略模式 一个可以根据不同的传入参数而具有不同行为的方法,就叫策略模式
* @author dsj 2015-8-3 下午1:15:41
*/
public class Celv {
static String s ="a策略 B模式";
public static void main(String[] args) {
myProcess(new Upcase(), s);
myProcess(new Downcase(), s);
myProcess(new Splitter(), s);
} public static void myProcess(Process process,Object s){
System.out.print(process.name());
System.out.println(":"+process.process(s));
} } /** 基类提供了两个公共发货:获取类名称方法,处理方法 **/
class Process {
public String name() {
return getClass().getSimpleName();
} Object process(Object input) {
return input;
} } /** Process的子类具有转换字母为大写的功能**/
class Upcase extends Process{
/**
* Override:重写,他们的关系是父子关系,必须是方法名,参数的类型、个数、顺序,以及返回值都必须和父类相同才行。
* OverLoad:重载,他们的关系同类的不同方法,方法名相同其余都可以不同
*/
@Override
String process(Object input) {
return ((String)input).toUpperCase();
}
} /** Process的子类,具有转换字母为小写的功能 **/
class Downcase extends Process{ @Override
String process(Object input) {
return ((String)input).toLowerCase();
}
} /** Process子类,具有截取字符串的功能 **/
class Splitter extends Process{
@Override
Object process(Object input) {
return Arrays.toString(((String)input).split(" "));
}
}

运行结果:

Upcase:A策略 B模式
Downcase:a策略 b模式
Splitter:[a策略, B模式]

最新文章

  1. SQL优化技巧
  2. c# 其他技术学习
  3. wamp下php无法保存SESSION问题总汇
  4. CentOS6.5升级内核到3.10.28 --已验证
  5. MVC 上传文件并展示
  6. 使用JS对form的内容验证失败后阻止提交 &&js校验表单后提交表单的三种方法总结
  7. 线段树(倒序操作):POJ 2828 Buy Tickets
  8. (转)你知道Android也有安全模式吗?(地球人都知道了吧)
  9. 三星S5驱动安装
  10. JS数组添加删除
  11. SSM 框架搭建
  12. leetcode 230 二叉搜索树中第K小的元素
  13. linux 下 ifcfg-ethx配置和解析
  14. Mac 下编译安装 php-5.6
  15. Java知识回顾 (8) 集合
  16. 悲观锁,乐观锁,排他锁,行锁----MYSQL
  17. .Net实现微信公众平台开发接口(一) 之 “微信开发配置”
  18. Update 20180317
  19. hdu 1013 过山车 匈牙利算法(代码+详细注释)
  20. SQL进阶语法的多表操作

热门文章

  1. Oracle 11g数据库详解(3)
  2. Dora.Interception, 为.NET Core度身打造的AOP框架:不一样的Interceptor定义方式
  3. xshell下载安装
  4. Django:学习笔记(3)——REST实现
  5. linux svn 命令
  6. 『NiFi 学习之路』入门 —— 下载、安装与简单使用
  7. python进阶——进程/线程/协程
  8. Connection.setAutoCommit使用的注意事项
  9. 通过FFmpeg将多媒体文件解码后保存成Bmp图像(YUV420 RGB32)
  10. Sybase:delete与truncate、drop区别