黑马程序员-策略设计模式

---------------------- 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培训、期待与您交流! ----------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值