策略模式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();
}
}
總結
以上是生活随笔為你收集整理的策略模式java 用例_java策略模式简单用例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据结构--跳表SkipList
- 下一篇: 如何选择数据结构和算法(转)