工厂模式
工厂模式是属于类创建型模式,它根据抽象不同的程度分三种:
- 简单工厂模式(静态工厂模式)
- 工厂方法模式
- 抽象工厂模式
简单工厂模式
也称为静态工厂模式,它属于类创造型模式,在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。
例如:
1 | public class Factory { |
工厂方法模式
工厂方法模式又称为工厂模式,也叫虚拟构造器模式。在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一个具体产品类。
例如:1
2
3
4
5
6
7
8
9
10public interface Factory {
public Product factoryMethod();
}
public class ConcreteFactory implements Factory {
public Product factoryMethod() {
return new ConcreteProduct();
}
}
抽象工厂模式
抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。
例如: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
33
34
35
36
37
38
39public interface Factory {
public Product createProduct();
}
public interface Product {
public void getId();
public void getQuality();
}
public class ProductA implenment Product{
public void getId(){
System.out.printlt(“Get ProductA’s Id ”);
}
public void getQuality(){
System.out.printlt(“Get ProductA’s Quality ”);
}
}
public class ProductB implenment Product{
public void getId(){
System.out.printlt(“Get ProductB’s Id ”);
}
public void getQuality(){
System.out.printlt(“Get ProductB’s Quality ”);
}
}
public class AbstractFactoryA implenment Factory{
public Product createProduct(){
return new ProductA();
}
}
public class AbstractFactoryB implenment Factory{
public Product createProduct(){
return new ProductB();
}
}