java中的策略设计模式
2024-10-19 02:24:03
本文主要讲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模式]
最新文章
- SQL优化技巧
- c# 其他技术学习
- wamp下php无法保存SESSION问题总汇
- CentOS6.5升级内核到3.10.28 --已验证
- MVC 上传文件并展示
- 使用JS对form的内容验证失败后阻止提交 &;&;js校验表单后提交表单的三种方法总结
- 线段树(倒序操作):POJ 2828 Buy Tickets
- (转)你知道Android也有安全模式吗?(地球人都知道了吧)
- 三星S5驱动安装
- JS数组添加删除
- SSM 框架搭建
- leetcode 230 二叉搜索树中第K小的元素
- linux 下 ifcfg-ethx配置和解析
- Mac 下编译安装 php-5.6
- Java知识回顾 (8) 集合
- 悲观锁,乐观锁,排他锁,行锁----MYSQL
- .Net实现微信公众平台开发接口(一) 之 “微信开发配置”
- Update 20180317
- hdu 1013 过山车 匈牙利算法(代码+详细注释)
- SQL进阶语法的多表操作
热门文章
- Oracle 11g数据库详解(3)
- Dora.Interception, 为.NET Core度身打造的AOP框架:不一样的Interceptor定义方式
- xshell下载安装
- Django:学习笔记(3)——REST实现
- linux svn 命令
- 『NiFi 学习之路』入门 —— 下载、安装与简单使用
- python进阶——进程/线程/协程
- Connection.setAutoCommit使用的注意事项
- 通过FFmpeg将多媒体文件解码后保存成Bmp图像(YUV420 RGB32)
- Sybase:delete与truncate、drop区别