首页 > 其他 > 详细

简单工厂设计模式

时间:2015-05-26 02:04:18      阅读:311      评论:0      收藏:0      [点我收藏+]

?????? 简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式。是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。

????? 简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类的创建产品类的方法可以被外界直接调用,创建所需的产品对象。

没有工厂模式时创建对象如下:

package com.longpo;

public class Factory {

	public static void main(String[] args) {
		
		//没工厂时创建对象
		shoes ok=new shoes();
		ok.desc();
		
		clothes ok1=new clothes();
		ok1.desc();

	}

}

class shoes{
	
	public void desc()
	{
		System.out.println("我是一对阿迪达斯篮球鞋");
	}
}

class clothes{
	public void desc()
	{
		System.out.println("我是一件安踏运动服");
	}
}

?

??? 此时是直接依赖关系,当被调用者发生变化时,会直接影响调用者,耦合性太高,使用工厂模式,能降低耦合性

?

引入工厂模式,由工厂来决定创建对象实例,降低耦合度。

package com.longpo;

public class Factory {

	public static void main(String[] args) {
		
		//工厂根据需求创建对象
		goods shoesGoods=myFactory.getInstance("shoes");
		if(shoesGoods!=null)
			shoesGoods.desc();
		goods clotherGoods=myFactory.getInstance("clothes");
		if(clotherGoods!=null)
			clotherGoods.desc();

	}

}
//抽象出公共接口
interface goods{
	public void desc();
}
//工厂类
class myFactory {
	//负责创建实例对象
	public static goods getInstance(String type)
	{
		if(type.equals("shoes"))
		{
			return new shoes();
		}
		else if(type.equals("clothes"))
		{
			return new clothes();
		}
		return null;
	}
	
}
//实现接口
class shoes implements goods{
	
	public void desc()
	{
		System.out.println("我是一对阿迪达斯篮球鞋");
	}
}
//实现接口
class clothes implements goods{
	public void desc()
	{
		System.out.println("我是一件安踏运动服");
	}
}

?

?

?

?

?

简单工厂设计模式

原文:http://longpo.iteye.com/blog/2214092

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!