• 设计模式之工厂方法和抽象工厂


    简单工厂不是工厂模式,只是一种用法的习惯。

    工厂方法模式:定义了一个创建对象的接口,但是由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。(可以说工厂方法是一个特殊的模板方法)

    public abstract class PizzaStore{

      public Pizza orderPizza(String type){

        Pizza pizza;

        pizza=createPizza(type);

        pizza.pareare();

        pizza.bake();

        pizza.cut();

        pizza.box();

        return pizza;

      }

      protected abstract Pizza createPizza(Stirng type);       //客户程序中关于超类的代码和子类对象创建代码解耦了

    }

    pizza的种类如果有很多的话,我们将它抽象化,把它设计成一个接口或者是一个抽象的类(使用依赖倒置原则将向下的依赖倒置成向上的依赖,pizza的子类依赖pizza)。

    遵从OO设计中的指导方针:

      变量不可以持有具体类的引用。

      不要让类派生自具体类。

      不要覆盖基类中已实现的方法。

    当我们的pizza的工厂需要做的原料不相同该怎么办,那不我们为每种pizza的原料创建一种工厂。

    我们可以为工厂定义一个接口,这个接口负责创建所有的原料:

    public interface PizzaIngredienFactory{

      public Dough createDough();

      public Sauce createSauce();

      public Cheese createCheese();

      public Veggies[] createVeggies();

    }

    抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。

  • 相关阅读:
    git cmd 命令在已有的仓库重新添加新的文件夹
    google guava Multimap的学习介绍
    JavaScript笔记基础版
    初识hive
    深入学习HBase架构原理
    初识Azkaban
    MapReduce工作流多种实现方式
    Hive 分组问题
    sqoop使用中的小问题
    Sqoop 结合多种系统的具体应用
  • 原文地址:https://www.cnblogs.com/LvLoveYuForever/p/5799532.html
Copyright © 2020-2023  润新知