java设计模式之抽象工厂模式

工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。因为抽象工厂不太好理解,我们先看看图,然后就和代码,就比较容易理解。
java设计模式之抽象工厂模式_第1张图片

接口1

package com.design.model.AbstractFactory;

public interface Send
{
    public void send();
}

实现类(发送邮件和发送短信)

package com.design.model.AbstractFactory;

public class MailSend implements Send
{

    @Override
    public void send()
    {
        System.out.println("Mail Send");
    }

}
package com.design.model.AbstractFactory;

public class SmsSend implements Send
{

    @Override
    public void send()
    {
        System.out.println("Sms Send");
    }

}

接口2:

package com.design.model.AbstractFactory;

public interface Produce
{
    public Send produce();
}

实现工厂类:

package com.design.model.AbstractFactory;

public class MailSendFactory implements Produce
{

    @Override
    public Send produce()
    {
        // TODO Auto-generated method stub
        return new MailSend();
    }

}
package com.design.model.AbstractFactory;

public class SmsSendFactory implements Produce
{

    @Override
    public Send produce()
    {
        return new SmsSend();
    }

}

测试类:

package com.design.model.AbstractFactory;

public class FactoryTest
{

    public static void main(String[] args)
    {
        Produce produce = new MailSendFactory();
        Send send = produce.produce();
        send.send();
    }

}

测试结果:

Mail Send

后续待补~

你可能感兴趣的:(设计模式)