接口之命令模式
16lz
2021-01-22
package yuwei.com;
/* * 当某个方法要完成某个行为,但这个行为的具体实现无法确定 * 必须等到执行该方法时才能确定。 * * 对于这样的要求可以把"处理行为" 作为参数传入该方法 * 这个处理行为用编程来实现就是一段代码 * 那如何把这段代码传入该方法呢 * * 可以考虑Comand接口来定义一个方法 * 用这个方法来封装处理行为 * */
/** * 该方法用于封装处理行为,还没有具体的方法体 * */
interface Command {
//处理行为
void process(int[] target);
}
/** * 这个定义的是处理数组的处理类,里面有一个process方法 * 但这个方法无法确定数据的处理行为,所以定义该方法时使用 * 了一个Command参数,这个Command参数负责对数组的处理行为 * * */
class ProcessArray{
public void process(int[] target,Command cmd) {
cmd.process(target);
}
}
class ShowCommand implements Command{
@Override
public void process(int[] target) {
// TODO Auto-generated method stub
for(int i:target) {
System.out.println(i);
}
}
}
class sumCommand implements Command {
int sum = 0;
@Override
public void process(int[] target) {
// TODO Auto-generated method stub
for(int i:target) {
sum += i;
}
System.out.println("total = " + sum);
}
}
public class ComandDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
ProcessArray p = new ProcessArray();
int[] target= new int[] {2,3,2,4,5,2,5,5,2,54};
p.process(target, new ShowCommand());
///////////////
p.process(target, new sumCommand());
}
}
/* 2 3 2 4 5 2 5 5 2 54 total = 84 */
更多相关文章
- 如何使用swig定义和传递ByteBuffer?
- java 和 JavaScript都可以在创建一个对象时,就可以通过这个对象调
- 有什么方法可以避免HibernateOptimisticLockingFailureException
- native方法的使用
- Java Quartz的使用方法,实现程序计时
- 将行计数器方法与字数统计方法相结合
- 9.JAVA-抽象类定义
- java基础:集合框架之Map(共性方法)
- JAVA中的反射只获取属性的get方法