您的位置:首页 > 其它

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

2013-04-06 23:55 501 查看
  饮料的抽象类:

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();
}

}


运行结果如下:
****************************************************************************************



****************************************************************************************
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: