温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
工厂方法模式,我们来看一下工厂方法模式呢是。我们工厂模式的第二一种。第二种,那么工厂方法模式是什么?是一个什么样的概念呢?我们先有一个需求来引起我们这个思考,首先呢,我们看啊,现在假如披萨项目呢,我们有了新的需求。客户他在点披萨的时候呢,可以点不同口味的披萨,比如说北京的奶酪披萨。北京的胡椒披萨或者是伦敦的奶酪披萨,伦敦的胡椒披萨也就是说。现在我们这个披萨呢,不但有口味。的不同,而且还有它的地理位地,这个地区的不同。那大家想,面对这样一个题,你会怎么去思考呢?很简单,你可以这样想,我们仍然使用前面的简单工厂模式,对不对?因为简单工厂模式还是比较方便的,所以说你第一个想到的应该还是简单工厂模式,那如果是简单工厂模式的话,那你肯定就是建不同的工厂类就行了,比如说北京的披萨,北京披萨的简单工厂。
01:18
伦敦披萨简单工厂。那大大家想一想。这有北京,有伦敦,那还有天津。对吧,还有这个美国还有英国,那是不是如果这样去设计的话呢,就会导致我们将来这个工厂类会变得比较多。是不是这样问题,所以说这个方案虽然是可以的当,但是考虑到项目的规模以及软件的可维护性,可扩展性并不是特别的好。并不是特别好,所以说我们现在提出。工厂模式的第二一种类型,什么呢?叫做工厂方法模式。我们先对工厂方法模式呢做一个基本的介绍。
02:03
那什么叫工厂方法模式呢?来看。所谓工厂方法模式。它是指。比如说呃,针对前面这个案例,我们将披萨项目实例化,功能就是创建一个披萨的实力,这个功能先抽象。抽象成一个方法,然后在不同的口味点餐子类中再具体实现。那换言之,就这个意思,我们定义一个创建对象的抽象方法,就这个方法,我们在简单工厂里面是不是直接就写写出来了,大家还记不记得,大家还记得我们在simple factory里里面有个叫create people create披萨,我们直接就在这个方法里面把这一个披萨创建起来了。对不对,但是现在呢,我们要改变一个方案了,因为我们这个创建方法,它的形式,它的要求不一样。
03:02
所以说我们可以把这个创建对象的方法先抽象,然后由子类决定要实例化的类是怎么样子的。那换言之,工厂方法模式它的核心思想是干什么呢?它就是把对象的实例化推迟到子类中。也就是说,他把对象的实例化推迟到子类中。那具体这个工厂方法模式怎么去解决刚才我们提出的这个需求呢?那么我们待会儿呢,用工厂方法模式给大家进行一个设计,然后用代码给大家进行一个实现。好,这个呢,我们在下一讲为大家说明。
我来说两句