package mode;
/**
*
* 设计模式之工厂模式
* @author gaoq
* @date 2015-12-5 下午3:25:48
*/
public class FactoryMode {
/**
* 发送消息接口类
* @author gaoq
* @date 2015-12-5 下午3:57:29
*/
interface Sender{
public void senderMsg();
}
/**
* 发送邮件实现类
* @author gaoq
* @date 2015-12-5 下午3:57:43
*/
class MainSender implements Sender{
@Override
public void senderMsg() {
System.out.println("hello,我是邮件发送管家。");
}
}
/**
* 发送短信实现类
* @author gaoq
* @date 2015-12-5 下午3:58:04
*/
class SmsSender implements Sender{
@Override
public void senderMsg() {
System.out.println("hello,我是短息发送管家。");
}
}
/**
* 工厂类
* @author gaoq
* @date 2015-12-5 下午3:57:16
*/
class Factory{
/**
* 根据参数生产出发送消息的实体类
* @param status 1是邮件发送实体类,非1的为短信发送实体类
* @return
*/
public Sender getSender(int status){
Sender sender = null;
switch(status){
case 1:
sender = new MainSender();
break;
default:
sender = new SmsSender();
break;
}
return sender;
}
}
/**
* 测试工厂模式
* @param args
*/
public static void main(String[] args) {
Factory factory = new FactoryMode().new Factory();
MainSender sender = (MainSender) factory.getSender(1);
sender.senderMsg();
SmsSender sms = (SmsSender) factory.getSender(0);
sms.senderMsg();
}
}