设计模式--简单工厂_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 设计模式--简单工厂

设计模式--简单工厂

 2011/11/21 7:54:49  176915785  http://zerosoft.iteye.com  我要评论(0)
  • 摘要:设计模式之中的简单工厂,本人比较笨不会画什么类图。只想单写写对简单工厂的理解。首先来个通用的实现接口。[code="java"]packagesimpl.factory;/***这是一个通用的生产接口*就好比画一幅画*@authorzero**/publicinterfaceApi{/***画画*/publicvoiddoSomeThing();}这时候需要几个实现接口的类了,例如:packagesimpl.factory
  • 标签:模式 设计 设计模式
设计模式之中的简单工厂,本人比较笨不会画什么类图。只想单写写对简单工厂的理解。 首先来个通用的实现接口。 [code="java"]package simpl.factory; /** * 这是一个通用的生产接口 * 就好比画一幅画 * @author zero * */ public interface Api { /** * 画画 */ public void doSomeThing(); }
这时候需要几个实现接口的类了,例如:
package simpl.factory;
/**
 * 小朋友画的画
 * @author zero
 *
 */
public class HumanAApi implements Api{

	@Override
	public void doSomeThing() {
		System.out.println("花的很可爱");
		
	}

}

package simpl.factory;
/**
 * 美术大师画的画
 * @author zero
 *
 */
public class HummnaBApi implements Api{

	@Override
	public void doSomeThing() {
		System.out.println("非常美");
	}

}

这两个就是我们的画画角色。
然后谁来管理呢?
package simpl.factory;

/**
 * 我们的工厂
 * 
 * @author zero
 * 
 */
public class Factory {
	public static Api getHumanA() {
		return new HumanAApi();
	}

	public static Api getHumanB() {
		return new HummnaBApi();
	}
}

最后看看,我们要求的画家画的画
package simpl.factory;

/**
 * 看画
 * 
 * @author zero
 * 
 */
public class Client {
	public static void main(String[] args) {
		Api a = Factory.getHumanA();
		a.doSomeThing();
		Api b = Factory.getHumanB();
		b.doSomeThing();
	}
}

看看结果,这个结构还是可以再次优化的。仔细看看代码,每次调用工厂的时候都会new出一个新的对象这样是不是有点浪费呢。所以可以工厂写成单例类
发表评论
用户名: 匿名