设计模式--工厂设计模式

工厂设计模式:四个角色 抽象工厂 具体工厂 抽象产品 具体产品

优点:类的创建方法被封装 满足开闭原则

缺点 每增加一个具体产品都要新加一个工厂 会造成类爆炸

package com.qf.factorydemo.factory;

/**
 * 工厂模式
 * 四个角色:抽象产品  具体产品   抽象工厂 具体工厂
 * <p>
 * 类对象的创建与创建过程分离 满足开闭原则 但是 会造成类爆炸
 */
//抽象工厂
public interface  Factory {
    //抽象方法 去创造coffee
      Coffee createCoffee();
}



package com.qf.factorydemo.factory;

//具体工厂
public class LSFactory implements Factory {
    @Override
    public Coffee createCoffee() {
        return new LScoffee();
    }
}




package com.qf.factorydemo.factory;

/**
 * 抽象类 具体类去实现
 */
public abstract class Coffee {

    //抽象方法
    public abstract String getName();


    //普通方法
    public void addMilk() {
        System.out.println("加奶");
    }

    public void addSugar() {
        System.out.println("加糖");
    }
}



package com.qf.factorydemo.factory;
//具体实现类
public class LScoffee extends Coffee {

    @Override
    public String getName() {
        return "蓝山咖啡制作";
    }
}



package com.qf.factorydemo.factory;

/**
 * 咖啡店 结合coffee工厂与coffee产品
 */

public class CoffeeStore {

    //声明factory
    private Factory factory;

    //指明具体的工厂

    public void setFactory(Factory factory) {
        this.factory = factory;
    }

    //点咖啡功能
    public Coffee createCoffee() {
        Coffee coffee = factory.createCoffee();
        coffee.addMilk();
        coffee.addSugar();
        return coffee;
    }


}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值