《黑马程序员》 工厂设计模式深入分析

------- android培训java培训、期待与您交流! ----------
public class FactoryModeDemo2 {

	/**
	 * 工厂设计模式: 
	 * 其实很简单的一个例子来说就是: 我们以前过年要做包子,要买面粉
	 * ,然后发面,还要自己买馅,然后再做。 做的速度慢,而且时间长。
	 * 自从有了包子铺了,我们就从他那里批发了。人家毕竟是专业的,
	 * 做的快,味道也好。我们省事了。最起码我们自己不用自己动手了。
	 * 而包子铺就相当于是这里的工厂
	 * 
	 * 有的时候接口有很多个实现子类,我们要是在客户端代码里面全部自己
	 * 一个一个创建,这样自己会很累。自从有了factory工厂, 我们找这个
	 * factory工厂,他们就能帮我们创建出接口的实现类。只是我们需要声
	 * 明我们需要创建接口的哪个子类即可。这个可以通过方法的参数来完成。
	 */
	public static void main(String[] args) {
		Factory2.getInstance("AndroidPhone2");
		Factory2.getInstance("ApplePhone2");
		Factory2.getInstance("YunOsPhone2");
		Factory2.getInstance("MyPhone2");
	}

}

//我们做一个接口
interface Phone2{
	//定义手机的发信息的规范
	public abstract void send();
}

class AndroidPhone2 implements Phone2{

	@Override
	public void send() {
		System.out.println("安卓手机发送信息");
	}
	
}
class ApplePhone2 implements Phone2{
	
	@Override
	public void send() {
		System.out.println("苹果手机发送信息");
	}
	
}
class YunOsPhone2 implements Phone2{
	
	@Override
	public void send() {
		System.out.println("YunOsPhone手机发送信息");
	}
	
}

//工厂
class Factory2{
	public  static void getInstance(String type){
		//需要传递类的类型
		if(type.equals("")){
			System.out.println("对不起,类型不能为空");
			return ;
		}
		Phone2 p2=null;
		//我们要将被比较的东西放在前面这是为了避免出现空指定异常。
		//如果AndroidPhone2没有指定就会出现异常发生。所以为了避免这种问题的出现。我们就把被比较的内容放在左边
		if("AndroidPhone2".equals(type)){
			p2=new AndroidPhone2();
		}else if("ApplePhone2".equals(type)){
			p2=new ApplePhone2();
		}else{
			p2=new YunOsPhone2();
		}
		p2.send(); //调用发送信息的方法
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值