简单工厂模式
简单工厂模式把对象的创建和使用分离,使用者只关心产品的类型,而不需要知道产品创建的细节,用于产品类型较少且不经常变化,或是使用者不关心创建对象过程的情况
优点
封装好、拓展好、符合单一职责
缺点
违反开闭原则,工厂类职责负担较重
总结
本质可以看做是三个类,分别是:
-
一个抽象接口类
-
一个具体实现类
-
一个工厂类
抽象接口类负责定义产品接口,还可以声明产品的通用功能。
具体实现类需要继承抽象接口类,并且实现其声明的全部方法,也可以增加自己独有的方法。
工厂类实际上是一个普通的类,类内有一个创建产品的方法,返回的类型是抽象接口类,这个方法可以接受一个参数,以此来确定调用哪个实现类。
例子
// 抽象产品接口
public interface Product {
void show();
}
// 具体产品类
// --具体产品类 B
public class ConcreteProductB implements Product {
@Override
public void show() {
System.out.println("Concrete Product B");
}
}
// --具体产品类 C
public class ConcreteProductC implements Product {
@Override
public void show() {
System.out.println("Concrete Product C");
}
}
// 工厂类
public class Factory {
public Product createProduct(String type) {
if ("B".equals(type)) {
return new ConcreteProductB();
} else if ("C".equals(type)) {
return new ConcreteProductC();
} else {
throw new IllegalArgumentException("Invalid product type.");
}
}
}
// 调用
public class Main {
public static void main(String[] args) {
Factory factory = new Factory();
Product productB = factory.createProduct("B");
productB.show();
Product productC = factory.createProduct("C");
productC.show();
}
}
标签:Product,show,创建,void,工厂,new,设计模式,public
From: https://www.cnblogs.com/MorningMaple/p/18165730