专栏名称: 一起成为全栈工程师
一起成为全栈工程师吧
目录
相关文章推荐
传媒招聘那些事儿  ·  【全职岗位表格】在线文档持续更新:新闻媒体/ ... ·  昨天  
传媒招聘那些事儿  ·  瞭望财经全职岗位!事业部负责人 ·  2 天前  
传媒招聘那些事儿  ·  【全职岗位表格】在线文档持续更新:新闻媒体/ ... ·  2 天前  
伯乐在线  ·  HR ... ·  昨天  
伯乐在线  ·  HR ... ·  昨天  
51好读  ›  专栏  ›  一起成为全栈工程师

Java设计模式之工厂模式

一起成为全栈工程师  · 简书  ·  · 2019-08-10 16:13

正文

请到「今天看啥」查看全文


abstract class BaseFactory{
    abstract void createPizza(String pizzaType);
}

class ChinaPizzaFactory extends BaseFactory{
    @Override
    void createPizza(String pizzaType) {
        if("cream".endsWith(pizzaType)){
            System.out.println("制作中国奶油披萨");
        }else {
            System.out.println("制作不了");
        }
    }
}

class FrancePizzaFactory extends BaseFactory{
    @Override
    void createPizza(String pizzaType) {
        if("cream".endsWith(pizzaType)){
            System.out.println("制作法国奶油披萨");
        }else {
            System.out.println("法国制作不了");
        }
    }
}

public class SimpleFactoryDemo {
    public static void main(String[] args) {
        ChinaPizzaFactory chinaFactory = new ChinaPizzaFactory();
        chinaFactory.createPizza("cream");
    }
}
抽象工厂方法
  1. 定义一个interface用于创建相关或有依赖关系的对象
  2. 可以将简单工厂模式和工厂方法模式进行整合
  3. 从设计层面看, 抽象工厂模式就是对简单工厂模式的进一步抽象
  4. 将工厂抽象成两层, 抽象工厂和具体实现的工厂子类, 可以根据要创建的对象类型使用对应的工厂子类, 有利于代码的维护和扩展
// 定义一个抽象工厂模型的抽象接口
interface AbsFactory{
    //让子类实现
    public void createPizza(String pizzaType);
}

class ChinaFactory implements AbsFactory{

    @Override
    public void createPizza(String pizzaType) {
        if("creem".endsWith(pizzaType)){
            System.out.println("制作中国奶油披萨");
        }else {
            System.out.println("做不了");
        }
    }
}

class FranceFactory implements AbsFactory{

    @Override
    public void createPizza(String pizzaType) {
        if("creem".endsWith(pizzaType)){
            System.out.println("制作法国奶油披萨");
        }else {
            System.out.println("做不了");
        }
    }
}

总结







请到「今天看啥」查看全文