0%

工厂方法模式

工厂方法模式

定义了一个创建对象的接口,使用工厂来处理创建对象的细节,使用继承的方式,由子类来负责决定具体类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// 产品
public interface IProduct {
void introduce();
}

public class Desk implements IProduct{
@Override
public void introduce() {
System.out.println("我是一张桌子呢");
}
}

// 工厂
public interface IFactory {
IProduct createProduct();
}

public class DeskFactory implements IFactory{
@Override
public IProduct createProduct() {
return new Desk();
}
}

public class TestFactoryMethod {
public static void main(String[] args) {
IFactory factory = new DeskFactory();
IProduct product = factory.createProduct();
// 我是一张桌子呢
product.introduce();
}
}

通过代码可以知道,工厂方法模式有四个要素

  • 产品接口
  • 产品实现
  • 工厂接口
  • 工厂实现

不同的产品由不同的工厂生产,但是增加了用户操作的复杂性,其与简单工厂模式相比,就是将在工厂中的逻辑判断转移到了客户端中,加功能修改客户端即可

优点

  • 使代码结构清晰
  • 对调用者屏蔽具体的产品类
  • 降低耦合度

使用场景

  • jdbc连接数据库,不能的数据库使用不同的驱动