zoukankan      html  css  js  c++  java
  • 设计模式之禅工厂模式

    工厂模式:

      define an interface for creating an object, but let sub classes decide which class to instantiate.factory method lets a class defer instantiation to subclasses.(定义一个用于创建对象的接口,让子类决定实例化哪一个类、工厂方法使一个雷的实例化延迟到了子类)

    模版:

     

     //抽象产品类
    
      public abstract class Product {
    
        //产品类的公公方法
    
        public  void method1(){
    
          //逻辑实现
    
        }
    
     
    
        public abstract void method2();
    
      }
    
       //具体产品
    
      public class ConcreteProduct1 extends Product {
    
        public void method2(){
    
          //业务逻辑处理
    
        }
    
      }
    
      
    
      public class ConcreteProduct2 extends Product {
    
        public void method2(){
    
          //业务逻辑处理
    
        }
    
      }
    
      //抽象工厂(定义继承,向上转型,去掉则转化为简单工厂模式)
    
      public abstract class Creator {
    
        public abstract <T extends Product> T createProduct(Class<T> c);
    
      }
    
      //具体工厂
    
      public class concreteCreator extends Creator {
    
        public <T extends Product> T createProduct(Class<T> c){
    
          Product product = null;
    
          try {
    
            product =(Product) Class.forname(c.getName()).newInstance();
    
          }catch(Exception e){
    
            //异常处理
    
          }
    
          return (T) product;
    
        }
    
      }
    
      //场景
    
      public class Client {
    
        public static void main(String[] arg){
    
          Creator creator = new ConcreteCreator();
    
          Product product = creator.createProduct(ConcreteProduct1.class);
    
          //继续处理
        }
    
      }

      优点:1.良好的封装性,代码结构清晰;2.屏蔽产品类。3.解耦,高层模块孩子需要知道产品的抽象类,其他实现可以不用关心。

  • 相关阅读:
    js 树型数据 转 数组
    js 数组转树型结构数据
    计算 手机端页面高度和宽度
    解密优酷智能生产技术,看 AI 赋能内容数字化
    从 FFmpeg 性能加速到端云一体媒体系统优化
    导播上云,把 “虚拟演播厅” 搬到奥运村
    揭秘阿里云 RTS SDK 是如何实现直播降低延迟和卡顿
    迈入 8K 时代,AI 驱动超高清 “视” 界到来
    千亿级市场赛道,阿里云视频云拿下 “三连冠”
    50 亿观众的 “云上奥运”,顶级媒体背后的数智化力量
  • 原文地址:https://www.cnblogs.com/cxyzl/p/2544189.html
Copyright © 2011-2022 走看看