设计模式 工厂方法模式(笔记)

发布于:2022-10-14 ⋅ 阅读:(466) ⋅ 点赞:(0)
优点:实现了开闭原则,多出一个种类的coffee,直接多出一个子类实现interface FactoryCoffee,不需要做出更改
缺点:种类过多,就会很繁琐
public abstract class Coffee{
    public abstract String getName();

}
public class AmericanCoffee extends Coffee {
    @Override
    public String getName() {
        return "让美国再次伟大";
    }
}
public class ChinaCoffee extends Coffee {

    @Override
    public String getName() {
        return "中国coffee";
    }
}
public interface FactoryCoffee {
    Coffee createCoffee();
}
public class FactoryCoffeeAmerican implements FactoryCoffee {
    @Override
    public Coffee createCoffee() {
        return new AmericanCoffee();
    }
}
public class FactoryCoffeeChina implements FactoryCoffee {
    @Override
    public Coffee createCoffee() {
        return new ChinaCoffee();
    }
}
public class CoffeeStore {
    private FactoryCoffee factoryCoffee;

    public FactoryCoffee getFactoryCoffee() {
        return factoryCoffee;
    }

    public void setFactoryCoffee(FactoryCoffee factoryCoffee) {
        this.factoryCoffee = factoryCoffee;
    }

    public Coffee createCoffee(){
        Coffee coffee = factoryCoffee.createCoffee();
        return coffee;
    }
}
public class Client{
    public static void main(String[] args) {
        //创建store对象
        CoffeeStore coffeeStore = new CoffeeStore();
        //创建具体工厂对象
        FactoryCoffeeAmerican factory = new FactoryCoffeeAmerican();
        //传入工厂对象
        coffeeStore.setFactoryCoffee(factory);
        //获得coffee对象
        Coffee coffee = coffeeStore.createCoffee();
        //打印coffee名字
        System.out.println(coffee.getName());
    }
}

网站公告

今日签到

点亮在社区的每一天
去签到