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

来源:互联网 发布:网络扎金花 编辑:程序博客网 时间:2024/04/30 02:09

  饮料的抽象类:

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 {@Overridepublic void taste() {System.out.println("咖啡,可以提神,喝多容易上火");}}

奶茶类:

public class MilkTea extends Water {@Overridepublic void taste() {System.out.println("奶茶,记住大多妹纸是喜欢喝奶茶的");}}
荞麦茶类:

public class BuckWheatTea extends Water {@Overridepublic 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();}}

运行结果如下:

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


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




原创粉丝点击