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

    抽象工厂模式

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

  • 相关阅读:
    揭晓UX(用户体验)最大的秘密
    Js、jquery学习笔记
    网站建设之高速WEB的实现
    网站改版之指标分析
    Nodejs读写流
    Nodejs查找,读写文件
    网站建设之脚本加载
    如何利用CSS3编写一个满屏的布局
    如何设计自己的UI套件
    用requireJS进行模块化的网站开发
  • 原文地址:https://www.cnblogs.com/fei-hsueh/p/6106300.html
Copyright © 2011-2022 走看看