Java 工厂模式

抽象一个基类的接口

 interface Drink{public void drink();}  //定一个抽象方法

定义实际的产品的类,实现接口,Beer和Milk类

class Milk implements Drink{
    public void drink() {System.out.println("喝牛奶");}
}
class Beer implements Drink{
    public void drink() {System.out.println("喝啤酒");}
}

覆写接口的方法,具体的产品有个字的功能

定义工厂类,根据需求,实现对象

class DrinkFactory{
    static Drink getInstance(String str) {
        if(str.equals("milk")) {  
            return new Milk();
        }else if(str.equals("beer")) {
            return new Beer();
        }
        return null;
    }
}

进行测试

public class Text{
    public static void main(String[] args) {
        Drink d=DrinkFactory.getInstance("milk");
        d.drink();
        Drink b=DrinkFactory.getInstance("beer");
        b.drink();
    }
}

Milk Beer 实现 Drink接口,所以向上自动转向
多态实现了参数的统一

运行结果

 

posted @ 2018-01-05 20:51  沃泽法克  阅读(122)  评论(0)    收藏  举报