zoukankan      html  css  js  c++  java
  • 【设计模式】工厂模式

    解释

      平时我们创建对象的时候都是直接new对应的对象,但是为了安全,可以新加一层接口,里面定义一个创建对象的方法,但是没有具体逻辑,而具体的创建的逻辑,可以通过新建类实现接口,重写创建方法的方式来实现。

    定义

      定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。同时在创建对象时对客户端隐藏了创建逻辑。这就是工厂模式。

    核心

      创建过程在子类实现

    优点

      1.扩展性好,想要增加一个产品,直接扩展一个工厂类就可以了。

      2.安全性好,对客户端隐藏了具体的创建的实现。

      3.操作简单,调用者想要创建对象,只要知道其名字就可以了。

    缺点

      每次增加一个产品都需要添加一个类,如果产品特别多,会导致代码中的类特别多,不易于维护。

    使用场景

      1.根据传参不同去访问不同的数据库。

      2.连接服务器协议的方式HTTP、IMAP、POP3

      3.MQ生产者发送消息,不同的生产者其实发送的动作是一样的。

    具体使用描述

      1.创建一个工厂接口,里面定义创建对象的方法。

      2.再分别创建两个工厂类,均实现这个工厂接口,并按照各自的逻辑重写创建对象的方法。

    代码实现

    public interface BallFactory {
        public Ball create();
    }
    
    public class SoccerFactory implements BallFactory {
        @Override
        public Ball create() {
            //do something
            return null;
        }
    }
    
    public class BasketBallFactory implements BallFactory {
        @Override
        public Ball create() {
            //do something
            return null;
        }
    }

    其他应用

    持续更新!!!

  • 相关阅读:
    Unity3D中使用委托和事件
    进程与线程浅析(三)之线程三国战斗模拟
    NGUI学习笔记(一)UILabel介绍
    Mongodb学习笔记(2)--修改器
    Mongodb学习笔记(1)--入门
    Java8学习笔记(七)--Collectors
    Java8学习笔记(六)--Optional
    Java8学习笔记(五)--Stream API详解[转]
    Java8学习笔记(四)--接口增强
    Java8学习笔记(三)--方法引入
  • 原文地址:https://www.cnblogs.com/flyinghome/p/15459161.html
Copyright © 2011-2022 走看看