工厂模式

工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。

实现

package cn.devcxl.common;

/**
 * @author devcxl
 */
public class FactoryDemo {


    public interface Drink {
        void make();
    }

    public enum DrinkType {
        ORANGE,
        WATERMELON;

    }

    public class DrinkFactory {
        public Drink makeDrink(DrinkType drinkType) {
            if (DrinkType.ORANGE.equals(drinkType)) {
                return new Orange();
            } else if (DrinkType.WATERMELON.equals(drinkType)) {
                return new Watermelon();
            }
            return null;
        }
    }

    public class Orange implements Drink {
        @Override
        public void make() {
            // todo make Orange
            System.out.println("make Orange");
        }
    }

    public class Watermelon implements Drink {
        @Override
        public void make() {
            // todo make Watermelon
            System.out.println("make Watermelon Juice");
        }
    }


    public void run() {
        DrinkFactory drinkFactory = new DrinkFactory();
        Drink orangeade = drinkFactory.makeDrink(DrinkType.ORANGE);

        orangeade.make();

        Drink watermelon = drinkFactory.makeDrink(DrinkType.WATERMELON);

        watermelon.make();
    }

    public static void main(String[] args) {
        new FactoryDemo().run();
    }
}