验证码: 看不清楚,换一张 查询 注册会员,免验证
  • {{ basic.site_slogan }}
  • 打开微信扫一扫,
    您还可以在这里找到我们哟

    关注我们

Java泛型如何实现工厂模式

阅读:1017 来源:乙速云 作者:代码code

Java泛型如何实现工厂模式

在Java中,泛型可以用来实现一个通用的工厂模式,这样你就可以创建不同类型的对象,而不需要为每种类型编写特定的工厂类。下面是一个简单的例子,展示了如何使用泛型实现一个工厂模式。

首先,定义一个产品接口:

public interface Product {
    void use();
}

然后,创建几个实现该接口的具体产品类:

public class ConcreteProductA implements Product {
    @Override
    public void use() {
        System.out.println("Using ConcreteProductA");
    }
}

public class ConcreteProductB implements Product {
    @Override
    public void use() {
        System.out.println("Using ConcreteProductB");
    }
}

接下来,创建一个泛型工厂类:

public class GenericFactoryextends Product> {
    private Class clazz;

    public GenericFactory(Class clazz) {
        this.clazz = clazz;
    }

    public T createProduct() {
        try {
            return clazz.newInstance();
        } catch (InstantiationException | IllegalAccessException e) {
            throw new RuntimeException("Error creating product", e);
        }
    }
}

在这个泛型工厂类中,我们使用了一个泛型参数T,它必须是Product的子类。构造函数接受一个Class类型的参数,用于指定要创建的产品类型。createProduct方法使用反射来创建一个新的产品实例。

最后,你可以使用这个泛型工厂来创建不同类型的产品:

public class Main {
    public static void main(String[] args) {
        GenericFactory factoryA = new GenericFactory<>(ConcreteProductA.class);
        Product productA = factoryA.createProduct();
        productA.use();

        GenericFactory factoryB = new GenericFactory<>(ConcreteProductB.class);
        Product productB = factoryB.createProduct();
        productB.use();
    }
}

这个例子展示了如何使用泛型工厂来创建不同类型的产品,而不需要为每种产品编写特定的工厂类。这使得代码更加简洁和可扩展。

分享到:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: hlamps#outlook.com (#换成@)。
相关文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感兴趣
推荐阅读 更多>