简单工厂模式
简介
- 顾名思义就是,用一个工厂来创建很多其他的产品
- 用代码简单来说就是 ->
用一个类,来创建其他很多不同功能的对象
Java 中有很多很明显的工厂例子
线程池工具类 ->
Executors
-
Executors
有很多静态的方法- newFixedThreadPool -> 新的固定线程池
- newCachedThreadPool -> 固定保留时间的线程池
-
一个类调用不同静态方法,创建不同的线程池
实现
public class 简单工厂模式 {
public static void main(String[] args) {
String[] string = {"A", "B", "C", "D"};
Factory mFactory = new Factory();
for (String s : string) {
try {
//调用工厂类的静态方法 & 传入不同参数从而创建产品实例
mFactory.Manufacture(s).Show();
} catch (NullPointerException e) {
System.out.println("没有这一类产品");
}
}
}
}
//创建工厂类,通过创建静态方法从而根据传入不同参数创建不同具体产品类的实例
class Factory {
public static Product Manufacture(String ProductName) {
//工厂类里用switch语句控制生产哪种商品;
//使用者只需要调用工厂类的静态方法就可以实现产品类的实例化。
switch (ProductName) {
case "A":
return new ProductA();
case "B":
return new ProductB();
case "C":
return new ProductC();
default:
return null;
}
}
}
//创建抽象产品类,定义具体产品的公共接口
abstract class Product {
public abstract void Show();
}
//创建具体产品类(继承抽象产品类),定义生产的具体产品
//具体产品类A
class ProductA extends Product {
@Override
public void Show() {
System.out.println("生产出了产品A");
}
}
//具体产品类B
class ProductB extends Product {
@Override
public void Show() {
System.out.println("生产出了产品C");
}
}
//具体产品类C
class ProductC extends Product {
@Override
public void Show() {
System.out.println("生产出了产品C");
}
}