工厂设计模式

61 阅读1分钟

工厂模式是一种创建型设计模式,它提供了一个用于创建对象的接口,但允许子类决定实例化哪个类。以下是一个简单的工厂模式的实现示例:

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

	public interface Product {  

	    void use();  

	}

然后,创建实现Product接口的具体产品类,例如ConcreteProductA和ConcreteProductB:

	public class ConcreteProductA implements Product {  

	    public void use() {  

	        System.out.println("Using product A");  

	    }  

	}  

	  

	public class ConcreteProductB implements Product {  

	    public void use() {  

	        System.out.println("Using product B");  

	    }  

	}

接下来,创建一个抽象工厂类,例如AbstractFactory,声明创建产品的接口:


	public abstract class AbstractFactory {  

	    public abstract Product createProduct();  

	}

然后,创建具体工厂类,例如ConcreteFactoryA和ConcreteFactoryB,实现AbstractFactory中声明的方法:


	public class ConcreteFactoryA extends AbstractFactory {  

	    public Product createProduct() {  

	        return new ConcreteProductA();  

	    }  

	}  

	  

	public class ConcreteFactoryB extends AbstractFactory {  

	    public Product createProduct() {  

	        return new ConcreteProductB();  

	    }  

	}

最后,在客户端代码中,使用工厂对象创建产品对象:


	public class Client {  

	    public static void main(String[] args) {  

	        AbstractFactory factoryA = new ConcreteFactoryA();  

	        Product productA = factoryA.createProduct();  

	        productA.use(); // 输出 "Using product A"  

	        AbstractFactory factoryB = new ConcreteFactoryB();  

	        Product productB = factoryB.createProduct();  

	        productB.use(); // 输出 "Using product B"  

	    }  

	}

在这个示例中,客户端代码通过工厂对象创建了具体的产品对象,而不需要关心具体的创建过程。这样可以降低代码的耦合度,提高系统的可维护性和可扩展性。