美文网首页
工厂模式

工厂模式

作者: keith666 | 来源:发表于2016-05-16 22:55 被阅读14次

1. 工厂方法模式

Intent

  • Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses(把对象的创建延迟到了子类来实现).
  • Defining a "virtual" constructor.
  • The new operator considered harmful.

Structure

factory method by keith
  • 代码:

  • public class Factory {
        public static void main(String[] args) {
            //test
            Pizza pizza;
            PizzaStore store = new NYPizzaStore();
            pizza=store.createPizza();
            pizza.print();
    
            store = new ChicagoPizzaStore();
            pizza=store.createPizza();
            pizza.print();
        }
    }
    //product
    class Pizza {
        String store;
    
        public Pizza(String store) {
            this.store = store;
        }
    
        void print() {
            System.out.println("Pizza from " + store);
        }
    }
    abstract class PizzaStore {
        //factory method
        abstract Pizza createPizza();
    }
    class NYPizzaStore extends PizzaStore {
    
        @Override
        Pizza createPizza() {
            return new Pizza(getClass().getSimpleName());
        }
    }
    class ChicagoPizzaStore extends PizzaStore {
    
        @Override
        Pizza createPizza() {
            return new Pizza(getClass().getSimpleName());
        }
    }
    
    1. Output
    Pizza from NYPizzaStore
    Pizza from ChicagoPizzaStore
    

    2. 抽象工厂模式

    Intent

    • Provide an interface for creating families of related or dependent objects without specifying their concrete classes.
    • A hierarchy that encapsulates: many possible "platforms", and the construction of a suite of "products".
    • The new operator considered harmful.

    Structure

    abstract factory by keith
    1. 代码:
    public class Factory {
        public static void main(String[] args) {
            //test
            PizzaStore store = new PizzaStore();
            store.makeOrder(1);
            store.makeOrder(2);
        }
    }
    //product
    class Pizza {
        String factory;
    
        public Pizza(String store) {
            this.factory = store;
        }
    
        String description(){
            return "Pizza from "+factory;
        }
    }
    class PizzaStore {
        PizzaFactory factory;
    
        //factory method
        void makeOrder(int type) {
            if (type == 1) {
                factory = new PizzaFactory1();
            }
            if (type == 2) {
                factory = new PizzaFactory2();
            }
            Pizza pizza = factory.createPizza();
            System.out.println(pizza.description() + " is ready!");
        }
    }
    interface PizzaFactory {
        Pizza createPizza();
    }
    class PizzaFactory1 implements PizzaFactory {
    
        @Override
        public Pizza createPizza() {
            return new Pizza(getClass().getSimpleName());
        }
    }
    class PizzaFactory2 implements PizzaFactory {
    
        @Override
        public Pizza createPizza() {
            return new Pizza(getClass().getSimpleName());
        }
    }
    
    1. Output
    Pizza from PizzaFactory1 is ready!
    Pizza from PizzaFactory2 is ready!
    

    Refenrence

    1. Design Patterns
    2. 设计模式

    相关文章

    • 常用设计模式

      设计模式 工厂模式 工厂模式思路上分:简单工厂模式,工厂模式, 抽象工厂模式// 抽象工厂模式可以代替工厂模式,做...

    • 工厂模式

      工厂模式细分三种:简单工厂模式、工厂模式、抽象工厂模式。 工厂模式相当于抽象了简单工厂模式的工厂类,而抽象工厂模式...

    • 工厂模式

      工厂模式 就是工厂---生产-->产品 在设计模式中,分为 简单工厂模式, 工厂方法模式,抽象工厂模式. 工厂模式...

    • 找女朋友之简单工厂模式,工厂模式,抽象工厂模式

      找女朋友之简单工厂模式,工厂模式,抽象工厂模式 找女朋友之简单工厂模式,工厂模式,抽象工厂模式

    • 【设计模式】- 工厂模式

      工厂模式分为三种:简单工厂模式、工厂方法模式和抽象工厂模式。 工厂模式:靠工厂生产对象 简单工厂模式中只有一个工厂...

    • 工厂模式

      工厂模式包含三种模式:简单工厂模式、工厂方法模式和抽象工厂模式。 简单工厂模式 定义简单工厂模式:由一个工厂类根据...

    • Java设计模式——工厂模式

      工厂模式简单工厂模式工厂方法模式抽象工厂模式 1.简单工厂模式 1.基本介绍1)简单工厂模式也叫静态工厂模式,是属...

    • 设计模式-3种工厂模式

      工厂模式包括:简单工厂模式,工厂方法模式,抽象工厂模式 简单工厂模式 工厂方法根据参数直接创建实例:工厂->产品 ...

    • 设计模式-工厂模式

      工厂模式概念 实例化对象,用工厂方法代替new操作。工厂模式包括工厂方法模式和抽象工厂模式。抽象工厂模式是工厂模式...

    • 第一章2.0工厂- 基础类准备

      2.1工厂-简单工厂模式2.2工厂-工厂方法模式2.3工厂-抽象工厂模式

    网友评论

        本文标题:工厂模式

        本文链接:https://www.haomeiwen.com/subject/yaobrttx.html