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

    抽象工厂模式

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

  • 相关阅读:
    CSP游戏 4
    CSP 交通规划
    CSP 地铁修建
    CSP 通信网络
    CSP URL映射
    CSP 权限查询
    CSP Markdown
    CSP JSON 查询
    SQL里的子查询
    SQL里的操作符
  • 原文地址:https://www.cnblogs.com/fei-hsueh/p/6106300.html
Copyright © 2011-2022 走看看