转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/39784403
抽象工厂模式(Abstract Factory):抽象工厂--顾名思义,就是把工厂抽象出来,不同的工厂生产不同的产品。这样做有个好处:一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。
/** * 示例:抽象工厂--顾名思义,就是把工厂抽象出来,不同的工厂生产不同的产品 * * 优点:一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码 */ interface Sender { public void send(); } class EmailSender implements Sender { @Override public void send() { System.out.println("this is a email..."); } } class SmsSender implements Sender { @Override public void send() { System.out.println("this is a sms..."); } } /** * 角色:抽象工厂 */ interface AbstractFactory { public Sender produce(); } /** * 邮件工厂 */ class EmailSendFactory implements AbstractFactory { @Override public Sender produce() { return new EmailSender(); } } /** * 短信工厂 */ class SmsSendFactory implements AbstractFactory { @Override public Sender produce() { return new SmsSender(); } } /** * 客户端测试类 * * @author Leo */ public class Test { public static void main(String[] args) { /** * 创建工厂 */ AbstractFactory factory = new SmsSendFactory(); /** * 生产产品 */ Sender sender = factory.produce(); /** * 执行业务逻辑 */ sender.send(); } }
如果你现在想增加一个功能:给特别关注的好友发信息,则只需做一个实现类,实现Sender接口,同时做一个工厂类,实现AbstractFactory接口,就可以了,无需修改现有代码。这样做拓展性较好!
原文地址:http://blog.csdn.net/lhy_ycu/article/details/39784403