zoukankan      html  css  js  c++  java
  • 工厂方法模式

    工厂方法的通用源码

    抽象产品类

    public abstract class Product{
      public void method(){
    
      }
      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;
      }
    }
    

    简单工厂模式

    简单工厂模式去掉了抽象工厂类, 并且createProduct()方法添加了static. 该模式调用过程更为简单, 方便理解. 但是扩展较为困难, 不符合开闭原则.

    多工厂模式

    利用工厂模式生成单例

    class Singleton{
        private Singleton(){}
        public void doSomething(){}
    }
    public class FactorySingle {
        private static Singleton sSingleton;
    
        static {
            try{
                Class cl=Class.forName(Singleton.class.getName());
                Constructor constructor=cl.getDeclaredConstructor();
                constructor.setAccessible(true);
                sSingleton=(Singleton)constructor.newInstance();
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    
        public static Singleton getSingleton(){
            return sSingleton;
        }
    }

    抽象工厂模式

    为创建一组相关或者是相互依赖的对象提供一个接口, 而不需要制定它们的具体类.

  • 相关阅读:
    OC 单例实现
    iOS 代码调试
    iOS
    iOS 11 scroll滚动偏移,tableview偏移44,获取view的宽和高
    swift 约束
    OC
    OC 线程操作
    OC 线程操作
    【第35题】2019年OCP认证12C题库062考试最新考试原题-35
    【第34题】2019年OCP认证12C题库062考试最新考试原题-34
  • 原文地址:https://www.cnblogs.com/fei-hsueh/p/6106300.html
Copyright © 2011-2022 走看看