java之-命令模式

           命名模式首先需要一个只有单一方法的接口,然后从该接口实现具有各自不同的行为的多个子类,下面给出一个样例。

package java191;

import java.util.EnumMap;
import java.util.Map;
import static java191.AlarmPoints.*;

interface Command {void action();}

public class EnumMaps {

	public static void main(String[] args) {
		EnumMap<AlarmPoints, Command> em 
		= new EnumMap<AlarmPoints, Command>(AlarmPoints.class);
		
		em.put(AlarmPoints.KITCHEN, new Command() {
			
			@Override
			public void action() {
				System.out.println("KITCHEN fire!");
			}
		});
		
		em.put(AlarmPoints.BATHROOM, new Command() {
			
			@Override
			public void action() {
				System.out.println("Bathroom alert");
			}
		});
		
		for(Map.Entry<AlarmPoints, Command> e : em.entrySet()){
			System.out.println(e.getKey()+": ");
			e.getValue().action();
		}
		
		try {
			em.get(UTILITY).action();
		} catch (Exception e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
	}
}

package java191;

public enum AlarmPoints {
	STAIR1, STAIR2, LOBBY, OFFICE1, OFFICE2, OFFICE3, OFFICE4, 
	BATHROOM, UTILITY, KITCHEN
}

EnumMap是一种特殊的Map,它要求其中的键(key)必须来自一个enum.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值