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

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

