抽象工厂模式

来源:互联网 发布:java 算法 快速排序 编辑:程序博客网 时间:2024/05/23 01:59

2.抽象工厂模式(Abstract Factory)

工厂方法模式有一问题,类的创建以来工厂类,想要扩展程序,必须对工厂类进行修改,这违背了闭包原则。所以,用抽象工厂模式,创建多个工厂类,一旦需要增加新的功能,直接增加新的工厂类。
adstract factory
example:

public interface Sender{    public void Send();}

两个实现类:

public MailSender implements Sender{    @Override    public void Send(){        System.out.println("this is mailsender!");    }}
public SmsSender implements Sender{    @Override    public void Send(){        System.out.println("this is sms sender!");    }}

两个工厂类:

public class SendMailFactory implements Provider {      @Override      public Sender produce(){          return new MailSender();      }  }  
public class SendSmsFactory implements Provider{      @Override      public Sender produce() {          return new SmsSender();      }  }  

在提供一个接口:

public interface Provider{    public Sender produce();}

测试如下:

public class Test{    public static void main(String[] args){        Provider provider = new SendMailFactory();        Sender sender = provider.produce();        send.Send();    }}

这个模式的好处就是,如果你想增加一个功能:XXXX;只需要做一个实现类实现Sender接口,同时在做一个工厂类事项Provider接口,无需改动现有代码。

3.单例模式(Singleton)

Singleton是一个很常用的模式,下次再记录。

0 0
原创粉丝点击