设计模式之JAVA----抽象工厂模式
Posted hongshu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式之JAVA----抽象工厂模式相关的知识,希望对你有一定的参考价值。
定义
工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码
工厂类接口
package com.hongshu.abstact.factory;
import com.hongshu.factory.ordinary.dao.Sender;
/**
* Description:
* @since
* @author HongShu
* @version 1.0.0
* 2014年7月30日 下午2:10:08
*/
public interface Provider
public Sender produce();
工厂类实现
package com.hongshu.abstact.factory;
import com.hongshu.factory.ordinary.dao.MailSender;
import com.hongshu.factory.ordinary.dao.Sender;
/**
* Description:抽象工厂模式
* @since
* @author HongShu
* @version 1.0.0
* 2014年7月30日 下午2:09:34
*/
public class SendMailFactory implements Provider
@Override
public Sender produce()
// TODO Auto-generated method stub
return new MailSender();
工厂类实现
package com.hongshu.abstact.factory;
import com.hongshu.factory.ordinary.dao.Sender;
import com.hongshu.factory.ordinary.dao.SmsSender;
/**
* Description:
* @since
* @author HongShu
* @version 1.0.0
* 2014年7月30日 下午2:11:48
*/
public class SendSmsFactory implements Provider
@Override
public Sender produce()
// TODO Auto-generated method stub
return new SmsSender();
测试类
package com.hongshu.abstact.factory;
import com.hongshu.factory.ordinary.dao.Sender;
/**
* Description:抽象工厂模式测试类
* 工厂方法模式有一个问题就是,类的创建依赖工厂类,
* 也就是说,如果想要拓展程序,必须对工厂类进行修改,
* 这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?
* 就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,
* 直接增加新的工厂类就可以了,不需要修改之前的代码
* @since
* @author HongShu
* @version 1.0.0
* 2014年7月30日 下午2:12:11
*/
public class Test
public static void main(String[] args)
Provider provider = new SendSmsFactory();
Sender sender = provider.produce();
sender.send();
说明:其中用到Sender, MailSender 、SmsSender请对照 设计模式之JAVA----工厂模式
以上是关于设计模式之JAVA----抽象工厂模式的主要内容,如果未能解决你的问题,请参考以下文章