码迷,mamicode.com
首页 > 其他好文 > 详细

工厂模式的介绍、优缺点

时间:2015-01-22 17:37:07      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:

二、工厂模式

1.介绍

      在上一节中介绍了“简单工厂模式”,现在来介绍下“工厂模式”,在“工厂模式”和“简单工厂模式”中,最主要,最明显的区别之一是“工厂模式”下可以设立多个子工厂,而不是所有的产品有单一的工厂来生产,而是给各自特色的子工厂来生产。

2.例子

      我们还是继续使用“计算器”来作为例子吧。由于在产品Product的结构模式变化不大,所以就不在载入(详情看“简单工厂模式”的随笔),主要载入“工厂模式”的代码

a.父工厂接口(IFactory接口)

import SimpleFactory.Operation;

public interface IFactory {

	public Operation createOperation();
}

 

b.子工厂(加法工厂,减法工厂,乘法工厂,除法工厂)

import SimpleFactory.Operation;
import SimpleFactory.OperationAdd;
import SimpleFactory.OperationSub;
import SimpleFactory.OperationMul;
import SimpleFactory.OperationDiv;


public class AddFactory implements IFactory{

	public Operation createOperation() {
		// TODO Auto-generated method stub
		return new OperationAdd();
	}
}

public class SubFactory implements IFactory{

	@Override
	public Operation createOperation() {
		// TODO Auto-generated method stub
		return new OperationSub();
	}

}

public class MulFactory implements IFactory{

	@Override
	public Operation createOperation() {
		// TODO Auto-generated method stub
		return new OperationMul();
	}

}

public class DivFactory implements IFactory{

	@Override
	public Operation createOperation() {
		// TODO Auto-generated method stub
		return new OperationDiv();
	}

}

c.客户端

import SimpleFactory.Operation;

public class Client {
    
    public static void main(String[] args) {
    
        IFactory operFactory = new AddFactory();
        Operation oper = operFactory.createOperation();
        oper.set_numberA(1);
        oper.set_numberB(2);
        double result = oper.getResult();
        System.out.println(result);
    }
}

d.UML图(例子是从《大话设计模式》中借鉴而来的,这是一本很不错的书)

技术分享

3.评价:

a.在客户端Client中可以将工厂模式的主要结构看着很清楚,首先我们要有IFactory这个工厂的父接口,所有的子类或者子接口都可以实现它。AddFactory则是子类的代表之一,所以利用java的多态来实现,降低代码的耦合性。而同时每个子工厂中拥有每条生产独特产品的生产线。由此,工厂和产品挂上钩了,联系上了。每个子工厂生产出来的都是独特的产品。

b.比“简单工厂模式”的优缺点

优点:克服了简单工厂违背开放-封闭原则的缺点,又保留了封装对象创建过程的优点,降低客户端和工厂的耦合性,所以说“工厂模式”是“简单工厂模式”的进一步抽象和推广。

缺点:每增加一个产品,相应的也要增加一个子工厂,加大了额外的开发量。

 

工厂模式的介绍、优缺点

标签:

原文地址:http://www.cnblogs.com/kgrdomore/p/4242081.html

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