美文网首页
3.工厂方法模式--应用最广泛的模式

3.工厂方法模式--应用最广泛的模式

作者: 君袅 | 来源:发表于2019-03-04 21:40 被阅读0次

    一.定义:

    定义一个用于创建对象的接口,由子类决定实例化哪个类.(Factory Pattern)
    创建型设计模式之一,应用十分广泛.

    二.使用场景:

    在任何需要生成复杂对象的地方,都可以使用工程方法模式,用new就可以完成创建的对象无需使用工厂方法模式.

    image.png

    产品类

    public abstract class Product {
        public abstract void method();
    }
    

    产品A

    public class ProductA extends Product {
        @Override
        public void method() {
            Log.d("zll", "我是产品A ");
        }
    }
    

    产品B

    public class ProductB extends Product {
        @Override
        public void method() {
            Log.d("zll", "我是产品B: ");
        }
    }
    

    创建工厂

    public abstract class TFactory {
        public abstract <M extends Product> M createProduct(Class<M> cls);
    }
    
    public class TCreateFactory extends TFactory {
        @Override
        public <M extends Product> M createProduct(Class<M> cls) {
            M product = null;
            try {
                //反射获取对象
                product = (M) Class.forName(cls.getName()).newInstance();
            } catch (InstantiationException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
            return product;
        }
    }
    

    实现

            TCreateFactory factory = new TCreateFactory();
            ProductA product = factory.createProduct(ProductA.class);
            product.method();
            ProductB product1 = factory.createProduct(ProductB.class);
            product1.method();
    

    相关文章

      网友评论

          本文标题:3.工厂方法模式--应用最广泛的模式

          本文链接:https://www.haomeiwen.com/subject/kyvwuqtx.html