0%

设计模式-工厂方法

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

在简单工厂中,创建对象的是简单工厂类;而在工厂方法中,创建对象的是继承了父类工厂的子类。

类图

3ugP0A.md.png

实现

1
2
3
public interface Product {

}
1
2
3
public class ConcreteProduct1 implements Product {

}
1
2
3
public class ConcreteProduct2 implements Product {

}
1
2
3
4
5
public abstract class Factory {

public abstract Product factoryMethod();

}
1
2
3
4
5
6
7
8
public class ConcreteFactory1 extends Factory {

@Override
public Product factoryMethod() {
return new ConcreteProduct1();
}

}
1
2
3
4
5
6
7
8
public class ConcreteFactory2 extends Factory {

@Override
public Product factoryMethod() {
return new ConcreteProduct2();
}

}
1
2
3
4
5
6
7
8
public class Client {

public static void main(String[] args) {
Factory factory = new ConcreteFactory1();
Product product = factory.factoryMethod();
}

}