前言
抽象工厂模式相对于工厂方法模式进行了一些改进,使得增加新的类型的时候,不用修改工厂类,只要增加一个新的实现类,符合 开闭原则。
代码
发送信息接口
public interface Sender {
public void send();
}
发送短信和邮件的实现类
public class SendMsg implements Sender {
@Override
public void send() {
System.out.println("发送一条短信,收到了吗?");
}
}
public class SendEmail implements Sender {
@Override
public void send() {
System.out.println("发送电子邮件,请查收");
}
}
工厂接口
public interface Produce {
public Sender produce();
}
工厂接口实现类
public class MsgFactory implements Produce {
@Override
public Sender produce() {
return new SendMsg();
}
}
public class EmailFactory implements Produce{
@Override
public Sender produce() {
return new SendEmail();
}
}
测试
public class Test {
public static void main(String[] args) {
Produce produce = new MsgFactory();
Produce produce1 = new EmailFactory();
Sender sender = produce.produce();
sender.send();
}
}
结果
发送一条短信,收到了吗?