经典设计模式——工厂模式

编程

工厂模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂模式包括以下角色:

  • 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

回到顶部