工厂方法模式
工厂模式是一种创建型模式,定义一个创建对象的接口,但让实现这个接口的子类来决定创建哪一个类,工厂模式让类的实例化过程延迟到子类进行。
工厂方法模式包含四个角色
- Product:抽象产品,定义工厂方法所创建的对象的接口,也即是实际需要使用的对象的接口
- ConcreteProduct:具体产品,具体的Product接口的实现对象
- Factory:工厂接口,也可以叫Creater(创建者),申明工厂方法,通常返回一个Product类型的实例对象
- ConcreteProduct:工厂实现,或者叫ConcreteCreater(创建器对象),覆盖Factory定义的工厂方法,返回具体的Product实例
UML图

代码示例
// 抽象产品
public interface Product {
String getProductName();
}
// 具体产品A
public class ProductA implements Product {
@Override
public String getProductName(){
return "ProductA";
}
}
// 具体产品B
public class ProductB implements Product {
@Override
public String getProductName() {
return "ProductB";
}
}
// 工厂接口
public interface Factory {
Porduct createProduct();
}
// 具体工厂A
public FactoryA implements Factory {
@Override
public Product createProduct() {
return new ProductA;
}
}
// 具体工厂B
public FactoryB implements Factory {
@Override
public Product createProduct() {
return new ProductB;
}
}
// 客户端调用
public class Client {
public static void main(String[] args) {
Factory factory = new FactoryA();
Product product = factory.createProduct();
System.out.println(product.getProductName());
factory = new FactoryB();
product = factory.createProduct();
System.out.println(product.getProductName());
}
}
当有新产品需要增加的时候,我们只需要新增一个产品和其对应的工厂就可以,而使用时候有不需要去关心产品的实际创建
本文介绍工厂方法模式,一种创建型设计模式。通过定义创建对象的接口,并由子类决定实例化哪个类,使得添加新产品变得容易。文中给出了具体实现代码示例。
8695

被折叠的 条评论
为什么被折叠?



