1. 程式人生 > 實用技巧 >ES基礎(五十二)Hot & Warm 架構與 Shard Filtering

ES基礎(五十二)Hot & Warm 架構與 Shard Filtering

技術標籤:設計模式設計模式簡單工廠模式

簡單工廠模式的定義

簡單工廠模式(Simple Factory Pattern)又叫作靜態工廠方法模式(StaticFactory Method Pattern),簡單來說,簡單工廠模式有一個具體的工廠類,可以生成多個不同的產品,屬於建立型設計模式。簡單工廠模式不在GoF 23種設計模式之列。

簡單工廠模式主要包含3個角色

  • 簡單工廠(SimpleFactory):是簡單工廠模式的核心,負責實現建立所有例項的內部邏輯。工廠類的建立產品類的方法可以被外界直接呼叫,建立所需的產品物件。
  • 抽象產品(IProduct):是簡單工廠建立的所有物件的父類,負責描述所有例項共有的公共介面。
  • 具體產品(ConcreteProduct):是簡單工廠模式的建立目標。

示例

  • 定義一個課程標準ICourse介面
package com.liguogang.SimpleFactoryPattern;

public interface ICourse {
    // 錄製視訊
    public void record();
}

  • 建立一個Java課程的實現類JavaCourse
package com.liguogang.SimpleFactoryPattern;

public class JavaCourse implements ICourse {
    @Override
    public
void record() { System.out.println("錄製java課程"); } }
  • 建立一個Python課程的實現類PythonCourse
package com.liguogang.SimpleFactoryPattern;

public class PythonCourse implements ICourse {
    @Override
    public void record() {
        System.out.println("錄製python課程");
    }
}

  • 建立CourseFactory工廠類
package com.liguogang.SimpleFactoryPattern;

public class CourseFactory {

    public static ICourse create(Class<? extends ICourse> clazz) {
        try {
            if (null != clazz)
                return clazz.newInstance();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}

  • 客戶端測試程式碼
package com.liguogang.SimpleFactoryPattern;

public class Test {
    public static void main(String[] args) {
        CourseFactory courseFactory = new CourseFactory();
        ICourse javaCourse = courseFactory.create(JavaCourse.class);
        javaCourse.record();
    }
}

效果:
在這裡插入圖片描述
原始碼地址:https://github.com/lee58/designPattern/tree/master