设计模式:工厂方法-facotry method

来源:互联网 发布:nginx配置 编辑:程序博客网 时间:2024/05/16 07:58

定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

1、一个工厂对应一个产品

这里写图片描述

2、

这里写图片描述

使用以下代码实现对象,可以只使用1个工厂,而产生多个对象

public <T extends Product> T createProduct(Class<T> c) {        Product product = null;        try {            product = (Product)Class.forName(c.getName()).newInstance();        } catch (Exception e) {            e.printStackTrace();        }        return (T)product;    }

优点:

 将父类的方法,延迟到子类实现 解耦、屏蔽产品类的实现、良好的封装性
0 0