美文网首页
设计模式 | 创建型模式 | 简单工厂

设计模式 | 创建型模式 | 简单工厂

作者: 暴走的朝天椒 | 来源:发表于2021-03-08 22:52 被阅读0次

    简单工厂的定义

    提供一个创建对象实例的功能,而无需关心其具体实现。被创建实例的类型可以是接口、抽象类、也可以是具体的类。

    简单工厂解决问题的思路

    为了不让模块外部知道模块内部的具体实现,所以干脆新建一个类,在这个类里创建接口,然后把建好的接口返回给客户端。把这个类就称为简单工厂(Factory)。

    简单工厂的结构与说明

    简单工厂的结构示意图.png
    • Api:定义客户所需要的功能接口
    • Impl:Api的具体实现类。
    • Factory:工厂类,选择合适的实现类来创建Api接口对象。
    • Client:客户端,通过Factory来获取Api接口对象。

    简单工厂调用顺序示意图

    简单工厂调用顺序示意图.png

    简单工厂实例代码

    /**
     * 定义接口,可以通过简单工厂来实现
     */
    public interface Api {
        public void operation(String s);
    }
    
    /**
     * 接口的具体实现类A
     */
    public class ImplApiA implements Api{
        @Override
        public void operation(String s) {
            System.out.println("A s:" + s);
        }
    }
    
    /**
     * 接口的具体实现类B
     */
    public class ImplApiB implements Api{
        @Override
        public void operation(String s) {
            System.out.println("B s:" + s);
        }
    }
    
    /**
     * 工厂类,用来创建Api对象
     */
    public class Factory {
        /**
         * 创建具体Api对象的方法
         * @param condition
         * @return
         */
        public static Api createApi(int condition){
            Api api = null;
            if (condition == 1){
                api = new ImplApiA();
            }else {
                api = new ImplApiB();
            }
            return api;
        }
    }
    
    /**
     * 客户端,使用Api接口
     */
    public class Client {
        public static void main(String[] args) {
            Api api = Factory.createApi(1);
            api.operation("正在使用简单工厂");
        }
    }
    

    相关文章

      网友评论

          本文标题:设计模式 | 创建型模式 | 简单工厂

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