`
176915785
  • 浏览: 33150 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

设计模式--简单工厂

阅读更多
设计模式之中的简单工厂,本人比较笨不会画什么类图。只想单写写对简单工厂的理解。 首先来个通用的实现接口。 [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出一个新的对象这样是不是有点浪费呢。所以可以工厂写成单例类
1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics