码迷,mamicode.com
首页 > 编程语言 > 详细

Java设计模式菜鸟系列(五)抽象工厂模式建模与实现

时间:2014-10-05 02:37:07      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:java设计模式   工厂模式   java   uml   

转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/39784403


抽象工厂模式(Abstract Factory):抽象工厂--顾名思义,就是把工厂抽象出来,不同的工厂生产不同的产品。这样做有个好处:一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。


一、uml建模图

bubuko.com,布布扣


二、代码实现

/**
 * 示例:抽象工厂--顾名思义,就是把工厂抽象出来,不同的工厂生产不同的产品
 * 
 * 优点:一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码
 */
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接口,就可以了,无需修改现有代码。这样做拓展性较好!


Java设计模式菜鸟系列(五)抽象工厂模式建模与实现

标签:java设计模式   工厂模式   java   uml   

原文地址:http://blog.csdn.net/lhy_ycu/article/details/39784403

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!