经典设计模式——工厂模式
工厂模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂模式包括以下角色:
- Factory:抽象的工厂,声明工厂方法,该方法返回一个Product类型的对象
- ConcreteFactory:工厂的实现,重写了工厂方法,并返回ConcreteProduct实例
- Product:工厂生产出来的抽象产品
- ConcreteProduct:具体的产品
考虑如下场景:KFC店要给顾客提供一系列的食品,入鸡翅,鸡腿等,顾客每点一份食品,KFC需要很快的生产出来。
//Product角色abstract class KFCFood {
public abstract void show();
}
//ConcreteProduct角色1
class Chicken extends KFCFood {
public void show() {
System.out.println("鸡腿+1");
}
}
//ConcreteProduct角色2
class Wings extends KFCFood {
public void show() {
System.out.println("鸡翅+1");
}
}
//Factory角色,定义了一个生产产品的接口
interface IKFCFactory {
KFCFood createFood();
}
//ConcreteFactory角色1
class ChickenFactory implements IKFCFactory {
public KFCFood createFood() {
return new Chicken();
}
}
//ConcreteFactory角色2
class WingsFactory implements IKFCFactory {
public KFCFood createFood() {
return new Wings();
}
}
public class Client {
public static void main(String[] args) {
IFactory factory = new ChickenFactory();
//生产鸡腿
KFCFood food1 = factory.createFood();
food1.show();
//生产鸡腿
KFCFood food2 = factory.createFood();
food2.show();
}
}
工厂模式中,产品的创建都是由ConcreteFactory来完成的,通常每个负责一种具体产品的创建,各子工厂之间相互独立,职责明确,互不影响。
工厂模式适用于以下情形:
- 当一个类不知道它要创建的对象的类信息的时候
- 一个类希望由它的子类来创建对象的时候
以上是 经典设计模式——工厂模式 的全部内容, 来源链接: utcz.com/z/515748.html