在下面的程序中,DeviceCommandServiceImpl类实现DeviceCommandService接口,用来提供设备指令下发服务。当前已经实现了一个单线程版本,现在请使用多线程改写DeviceCommandServiceImpl类,要求:
1)可以并发地对不同的设备下发指令
2)对同一设备的指令下发要求保序
为实现简便,暂不考虑指令下发可能出现的错误。(本题12分)
interface DeviceProviderRegistry {
DeviceProvider getProviderService(String deviceId);
}
interface DeviceProvider {
void sendCommand(String command);
}
interface DeviceCommandService {
void sendCommand(String deviceId, String command);
}
public class DeviceCommandServiceImpl implements DeviceCommandService {
private DeviceProviderRegistry registry;
public DeviceCommandServiceImpl(DeviceProviderRegistry registry) {
this. registry= registry;
}
@Override
public void sendCommand(String deviceId, String command) {
DeviceProvider provider = registry.getProviderService(deviceId);
provider.sendCommand(command);
}
}
1)可以并发地对不同的设备下发指令
2)对同一设备的指令下发要求保序
为实现简便,暂不考虑指令下发可能出现的错误。(本题12分)
interface DeviceProviderRegistry {
DeviceProvider getProviderService(String deviceId);
}
interface DeviceProvider {
void sendCommand(String command);
}
interface DeviceCommandService {
void sendCommand(String deviceId, String command);
}
public class DeviceCommandServiceImpl implements DeviceCommandService {
private DeviceProviderRegistry registry;
public DeviceCommandServiceImpl(DeviceProviderRegistry registry) {
this. registry= registry;
}
@Override
public void sendCommand(String deviceId, String command) {
DeviceProvider provider = registry.getProviderService(deviceId);
provider.sendCommand(command);
}
}