前言
文章内容主要参考了刘伟主编的《设计模式(第2版)》,同时也结合了自己的一些思考和理解,希望能帮到大家。
本篇文章建议先阅读简单工厂模式
正文
一、定义
工厂方法模式(Factory Method Pattern):又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式,它属于类创建型模式
在这模式中工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生产具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一个具体产品类。
二、情景假设
某电视机厂专门生产各类电视机,比如海尔Haier电视机或者海信Hisense电视机,当输入任一类型的电视机,工厂就会生产这品牌电视机。
在看代码前我们可以自己脑补你会怎么编写?先写个Factory类,之后提供product方法创建电视机,然后传入想要的电视机参数,返回的就是我们想要的电视机,然后我们可以对电视机进行各样的操作(这个想法就有点类似简单工厂模式了)。接下来核对自己的想法叭。
三、情景分析
关于上面情景的类图(具体分析在下面)
首先和我们所想的一样,首先应该会有个电视TV类,因为我们最后就是要生产出电视给客户
//抽象类TV
public interface TV
{
public void play();
}
//具体实现类
//HaierTV
public class HaierTV implements TV
{
public void play() {
System.out.println("海尔电视机播放中!");
}
}
//HisenseTV
public class HisenseTV implements TV
{
public void play() {
System.out.println(