策略模式java 用例_java策略模式简单用例

运用java策略模式一个小程序

/**

*

*/

package Strategy;

import java.util.Arrays;

/**

* @author HuangRong

* @Funtion 定义策略

*/

public interface ComputablesStra {

public abstract void printForm();

}

/**

*

*/

package Strategy;

/**

* @author HuangRong

* @Function 为策略模式中的上下文角色,

* 提供printLetter()方法调用具体策略所重写的方法

*/

public class ControlPrint {

ComputablesStra stra;

public void setStrategy(ComputablesStra stra){

this.stra=stra;

}

public void printLetter(){

stra.printForm();

}

}

/**

*

*/

package Strategy;

import java.util.Arrays;

/**

* @author HuangRong

* @Funtion 按照大写,小写穿插的方式输出26个英文字母的实现,

* 为具体策略

*/

public class Form1 implements ComputablesStra {

@Override

public void printForm() {

// TODO Auto-generated method stub

//int m;

for(char i='a';i<='z';i++){

System.out.print(i+",");

System.out.print ((char)(i-32));

if((char)(i-32)!='Z'){

System.out.print(",");

}

}

System.out.println (";");

}

}

package Strategy;

/**

* @author HuangRong

* @Funtion 按照先大写全部输出,再小写全部输出的方式输出26个英文字母的实现,

* 为具体策略

*/

public class Form2 implements ComputablesStra {

@Override

public void printForm() {

// TODO Auto-generated method stub

char i;

for(i='A';i<='Z';i++){

System.out.print(i);

if(i!='Z'){

System.out.print(",");

}

}

System.out.print(";");

for(i='a';i<='z';i++){

System.out.print(i);

if(i!='z'){

System.out.print(",");

}

}

System.out.println(";");

}

}

/**

*

*/

package Strategy;

/**

* @author HuangRong

* @Function 策略模式的使用

*/

public class PrintMain {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

//上下文对象

ControlPrint print=new ControlPrint();

//上下文对象使用策略一

print.setStrategy(new Form1());

System.out.println("按照大写,小写穿插的方式输出26个英文字母:");

print.printLetter();

//上下文对象使用策略二

print.setStrategy(new Form2());

System.out.println("按照先大写全部输出,再小写全部输出的方式输出26个英文字母:");

print.printLetter();

}

}

0818b9ca8b590ca3270a3433284dd417.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值