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;
        }
    }

    其他应用

    持续更新!!!

  • 相关阅读:
    sql server 获取存储过程,表值,标量函数的参数
    拼接枚举字符串
    存储过程的输出接受强类
    映射对象
    C# abstract,virtual 修饰符
    SqlSugar之SqlQueryDynamic返回值处理
    sql server 中数据库数据导入到另一个库中
    sql server 自增长显式添加值
    sql得到表中的列信息
    程序中MMap集合数据重复导致程序慢的情况
  • 原文地址:https://www.cnblogs.com/flyinghome/p/15459161.html
Copyright © 2011-2022 走看看