0%

设计模式之工厂方法模式

什么是工厂方法模式

定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法模式使一个类的实例化延迟到其子类。

UML图

工厂方法模式简单代码实现

抽象产品类

1
2
3
4
5
6
7
8
9
10
11
12
13
/**
* @author iisheng
* @date 2019/10/21 21:36:56
*/
public abstract class Product {
// 产品类的公共方法
public void method1() {
// 业务处理逻辑
}

// 抽象方法
public abstract void method2();
}

具体产品类

1
2
3
4
5
6
7
8
9
10
11
/**
* @author iisheng
* @date 2019/10/21 21:37:23
*/
public class ConcreteProduct1 extends Product {

@Override
public void method2() {
// 业务处理逻辑
}
}

抽象工厂类

1
2
3
4
5
6
7
/**
* @author iisheng
* @date 2019/10/21 21:38:35
*/
public abstract class Creator {
public abstract <T extends Product> T createProduct(Class<T> c);
}

具体工厂类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
* @author iisheng
* @date 2019/10/21 21:40:07
*/
public class ConcreteCreator extends Creator {

@Override
public <T extends Product> T createProduct(Class<T> c) {
Product product = null;
try {
product = (Product) Class.forName(c.getName()).newInstance();
} catch (Exception e) {
// 异常处理
}
return null;
}
}
iisheng wechat
微信扫码关注 Coder阿胜