b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

解释器设计模式_lua解释器交互模式_解释器模式c语言(2)

电脑杂谈  发布时间:2017-02-22 18:11:38  来源:网络整理
public class Singleton3 {
    private static Singleton3 uniqueSingleton3 = new Singleton3();

    private Singleton3() {
    }

    public static Singleton3 getInstance() {
        return uniqueSingleton3;
    }
}
public class Singleton4 {

    private Singleton4() {
    }

    private static class SingletonFactory{
        private static final Singleton4 INSTANCE = new Singleton4();
    }

    public static Singleton4 getInstance() {
        return SingletonFactory.INSTANCE;
    }
}

1 首先要有一个产品接口

public intece IProduct {
     void method01();
     void method02();
}

2 然后要有具体的产品

public class ConcreteProductA implements IProduct {
    public void method01() {
        System.out.println("ConcreteProductA method01() ...");
    }
    public void method02() {
        System.out.println("ConcreteProductA method02() ...");
    }
}
public class ConcreteProductB implements IProduct{
    public void method01() {
        System.out.println("ConcreteProductB method01() ...");
    }

    public void method02() {
        System.out.println("ConcreteProductB method02() ...");
    }
}

3 简单工厂

一般都是根据传参来进行实例化,也可以使用命名不同的静态方法,还可以使用反射

public class Factory {
    /**
     * 反射
     * @param clazz
     * @param <T>
     * @return
     */
    public <T extends IProduct> T createProduct(Class<T> clazz){
        T product = null;
        try {
            product = (T) Class.forName(clazz.getName()).newInstance();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        return product;
    }

    /**
     * 使用不同命名的静态方法
     * @return
     */
    public static IProduct createProductA(){
        return new ConcreteProductA();
    }

    public static IProduct createProductB(){
        return new ConcreteProductB();
    }

    /**
     * 根据穿参进行实例化
     * @param name
     * @return
     */
    public static IProduct createProduct(String name){
        IProduct product = null;
        switch (name){
            case "productA":
                product =  new ConcreteProductA();
                break;
            case "productB":
                product = new ConcreteProductB();
                break;
            default:product = null;
        }
        return product;
    }
}


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-33899-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...