本文共 2313 字,大约阅读时间需要 7 分钟。
简单工厂模式是一种设计模式,其核心思想是通过引入一个工厂类,让用户在使用对象时无需关心对象的具体创建细节,从而降低系统的耦合度,提高设计的可维护性和扩展性。
简单工厂模式(Static Factory Pattern)通过定义一个工厂类,根据传入的参数返回不同类的实例。这些实例通常都具有相同的父类。工厂类通常提供静态方法,这种模式也被称为静态工厂方法模式。它是一种创建型模式,主要用于将对象的创建过程与使用过程分离开来。
工厂模式的核心是工厂类的设计,通常包括以下三个角色:
工厂角色(Factory):
factoryMethod(),返回类型为Product的抽象产品类型。抽象产品角色(Abstract Product):
具体产品角色(Concrete Product):
简单工厂模式的实现通常包括以下几个部分:
public abstract class Product { public void methodSame() { // 公共方法的实现 } public abstract void methodDiff(); // 抽象业务方法} public class ConcreteProductA extends Product { @Override public void methodDiff() { // 业务方法的实现 }} public class ConcreteProductB extends Product { @Override public void methodDiff() { // 业务方法的实现 }} public class Factory { public static Product getProduct(String type) { Product product = null; if (type.equals("A")) { product = new ConcreteProductA(); } else if (type.equals("B")) { product = new ConcreteProductB(); } return product; }} public class Client { public static void main(String[] args) { Product product = Factory.getProduct("A"); product.methodSame(); product.methodDiff(); }} 在简单工厂模式中,对象的创建可以通过以下几种方式:
直接使用new关键字:
Object obj = new Object();
优点:简单易行,缺点:难以扩展,需要修改源代码。
通过反射机制创建:
Object obj = (Object) Class.forName("com.example.MyClass").newInstance(); 优点:支持动态加载类,缺点:性能较差,且不符合Java的最佳实践。
通过克隆方法创建:
Object obj = objToClone.clone();
优点:保留了对象的唯一性,缺点:需要实现clone()方法。
通过工厂类创建:
Product product = Factory.getProduct("A"); 优点:实现了对象创建与使用的分离,易于管理,适合多种产品类型,减少了类之间的耦合,支持动态配置(如通过配置文件)。
简单工厂模式的使用具有以下优点:
其缺点包括:
简单工厂模式适用于以下场景:
通过以上分析,可以清晰地看到简单工厂模式在设计模式中的重要作用,以及它在实际开发中的应用场景。
转载地址:http://yzmoz.baihongyu.com/