黑马程序员-策略设计模式
来源:互联网 发布:问道钓鱼软件 编辑:程序博客网 时间:2024/05/15 23:48
---------------------- android培训、java培训、期待与您交流! ----------------------
package Interface;
//这是一般方法,Test_Exercise11B将用返回值为斜边类型的方法,结合多态实现
//这是自己写的,B是书本上的方法
import static Test_purview.print.*;
public class Test_Exercise11A {
public static void main(String[] args){
Upcase up = new Upcase();
up.process("aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ");
print(up.result);
Downcase down = new Downcase();
down.processor("aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ");
print(down.result);
}
}
class Processor{
String name(){
return this.getClass().getName();
}
void process(Object o){
}
}
class Upcase extends Processor{
String result;
void process(String s){
result = s.toUpperCase();
}
}
class Downcase extends Processor{
String result;
void processor(String s){
result = s.toLowerCase();
}
}
//Output:
//AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ
//aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz
---------------------------------------------华丽的分割线-----------------------------------------
package Interface;
import static Test_purview.print.*;
//同Test_Exercise11A,这是书上的用法,很巧妙,"策略设计模式"
//
import java.util.Arrays;
public class Test_Exercise11B {
public static void process(Processor1 p,Object s){
print("Using Process: " + p.name());
print(p.process(s));
}
public static void main(String[] args){
String s1 = "aA bB cC dD eE fF gG hH iI jJ kK lL mM nN oO" +
" pP qQ rR sS tT uU vV wW xX yY zZ";
String s2 = "This Is Just A Test!";
Processor1 p1 = new Processor1();
process(new Upcase1(),s1);
process(new Downcase1(),s1);
process(new Split(),s1);
// 上下的调用方法一样,实现的效果也是一样的,就是利用Upcase()、Downcase()、Split()等这些个Processor()的导出类
// 这些个Processor()的导出类返回的Processor1对象当做参数被Processor(object o)调用,返回不同的结果
print(p1.process(new Upcase1().process(s1)));
print(p1.process(new Downcase1().process(s1)));
print(p1.process(new Split().process(s1)));
}
}
class Processor1{
public String name(){
return this.getClass().getName();
}
public Object process(Object o){
return o;
}
}
class Upcase1 extends Processor1{
public Object process(Object o){
return ((String)o).toUpperCase();
}
}
class Downcase1 extends Processor1{
public Object process(Object o){
return ((String)o).toLowerCase();
}
}
class Split extends Processor1{
public String process(Object o){
return Arrays.toString(((String)o).split(" "));
}
// 在有空格的地方加,实现分割的效果
}
//Output:
//Using Process: Interface.Upcase1
//AA BB CC DD EE FF GG HH II JJ KK LL MM NN OO PP QQ RR SS TT UU VV WW XX YY ZZ
//Using Process: Interface.Downcase1
//aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss tt uu vv ww xx yy zz
//Using Process: Interface.Split
//[aA, bB, cC, dD, eE, fF, gG, hH, iI, jJ, kK, lL, mM, nN, oO, pP, qQ, rR, sS, tT, uU, vV, wW, xX, yY, zZ]
//AA BB CC DD EE FF GG HH II JJ KK LL MM NN OO PP QQ RR SS TT UU VV WW XX YY ZZ
//aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss tt uu vv ww xx yy zz
//[aA, bB, cC, dD, eE, fF, gG, hH, iI, jJ, kK, lL, mM, nN, oO, pP, qQ, rR, sS, tT, uU, vV, wW, xX, yY, zZ]
-------------------- android培训、java培训、期待与您交流! ----------------------
- 黑马程序员-策略设计模式
- 黑马程序员-策略模式
- 黑马程序员:设计模式
- 黑马程序员-设计模式
- 黑马程序员-----------设计模式
- 黑马程序员-设计模式
- 黑马程序员--设计模式
- 黑马程序员 设计模式
- 黑马程序员-----设计模式
- 黑马程序员--Spring与策略模式
- 黑马程序员——对象、接口——策略设计模式
- 黑马程序员-笑谈设计模式
- 黑马程序员--初识设计模式
- 黑马程序员------装饰设计模式
- 黑马程序员_设计模式
- 黑马程序员-装饰设计模式
- 黑马程序员---单列设计模式
- 黑马程序员_设计模式
- sql 存储过程中循环和游标用法
- JavaEE开发学习笔记(1)
- Treap
- winform 将数据库的信息导出到txt文本或excel中
- 常用的正则表达式
- 黑马程序员-策略设计模式
- slabtop简单的用途
- 数字证书原理
- Ajax使用(引用)
- [iOS] 关于 self = [super init];
- 启动OpenLDAP的命令
- 关于c语言自加运算的问题(a++)
- ebtables的OUTPUT链DNAT问题
- 哈佛公开课《Positive Psychology 1504》学习笔记 - What’s Positive Psychology 1504 about