设计模式笔记--简单工厂模式

  饮料的抽象类:

package com.netboy.demo;  
/** 
 * @功能: 饮料的抽象类,所有子类必须实现taste方法
 * @版本号:
 * @作者:  netboy  Email:wang_lin_n@163.com
 * @时间:  2013-4-6  下午11:11:55
 * @例子:
 */
public abstract class Water {
	public abstract void taste();
}

咖啡类:

public class Coffee extends Water {
	@Override
	public void taste() {
		System.out.println("咖啡,可以提神,喝多容易上火");
	}

}

奶茶类:

public class MilkTea extends Water {

	@Override
	public void taste() {
		System.out.println("奶茶,记住大多妹纸是喜欢喝奶茶的");
	}

}
荞麦茶类:

public class BuckWheatTea extends Water {

	@Override
	public void taste() {
		System.out.println("荞麦茶,多喝有益于健康");
	}
}

工厂类:饮料机

package com.netboy.demo;  
/** 
 * @功能: 饮料机,为你生产你指定的饮料
 * @版本号:
 * @作者:  netboy  Email:wang_lin_n@163.com
 * @时间:  2013-4-6  下午11:21:23
 * @例子:
 */
public class DrinkFactory {
	public static Water createDrink(Class c) {
		Water water = null;
		try {
			water = (Water)Class.forName(c.getName()).newInstance();
			
		} catch(InstantiationException e) {
			System.out.println("必须指定那种饮料");
			e.printStackTrace();
			
		} catch(IllegalAccessException e) {
			System.out.println("错误的饮料名称");
			e.printStackTrace();
		} catch(ClassNotFoundException e) {
			System.out.println("暂时没有这种饮料");
			e.printStackTrace();
		}
		return water;
	}
}
 

实现饮料机价值的员工类:

package com.netboy.demo;

/**
 * @功能: 员工福利,免费使用饮料机,饮料机提供奶茶、咖啡、荞麦茶
 * @版本号:
 * @作者: netboy Email:wang_lin_n@163.com
 * @时间: 2013-4-6 下午11:07:11
 * @例子:
 */
public class Staff {

	public static void main(String[] args) {
		System.out.println("hello,this is factory pattern demo");
		//hi,饮料机,来杯咖啡
		Water coffe = DrinkFactory.createDrink(Coffee.class);
		coffe.taste();
		
		//hi,饮料机,来杯奶茶
		Water milkTea = DrinkFactory.createDrink(MilkTea.class);
		milkTea.taste();
		
		//hi,饮料机,来杯荞麦茶
		Water buckWheatTea = DrinkFactory.createDrink(BuckWheatTea.class);
		buckWheatTea.taste();
	}

}

运行结果如下:

****************************************************************************************


****************************************************************************************




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值