设计模式--简单工厂

设计模式之中的简单工厂,本人比较笨不会画什么类图。只想单写写对简单工厂的理解。 首先来个通用的实现接口。 [code="java"]package simpl.factory; /** * 这是一个通用的生产接口 * 就好比画一幅画 * @author zero * */ public interface Api { /** * 画画 */ public void doSomeThing(); } [/code]
这时候需要几个实现接口的类了,例如:
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出一个新的对象这样是不是有点浪费呢。所以可以工厂写成单例类
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值