您的位置 首页 java

Java 简单工厂-工厂方法-抽象工厂设计模式

简单工厂模式

我们假设一个场景,小明肚子饿了,要订一个披萨。可能会订 必胜客 ,也可能点达美乐,又或者,还可能是 棒约翰 。于是我们可以设计这样一个方法,根据不同的type返回不同的披萨

但是假设用户想点的披萨品牌增加了,那么这块的代码也要发生相应的变化,我们可以将这里面的方法抽出来放到一个专门的类里,达到更好的复用,同时对用户变得透明,不用关心内在的逻辑

简单工厂模式

没错,其实简单工厂模式比起设计模式,更像是一个编程习惯。好处就是将代码复用了,如果有多个客户需要变更type,只要在工厂中进行修改就行

简单工厂

工厂方法

简单工厂虽然将逻辑抽取了出来,但是一旦有额外的披萨品牌加入,都需要更改其中的代码,这不符合开闭原则,因此就诞生了工厂方法,将更改代码变成增加一个工厂类

如此就能将工厂 抽象 了出来,新增披萨品牌只需要增加对应的工厂即可

抽象工厂

我们可以看到现在支持多个品牌的披萨,但是如果说现在披萨的品类需要细分呢,于是就要用到 抽象工厂模式 ,支持单个基础品类的披萨扩展为芝士披萨,蔬菜披萨等等

带口味的披萨

芝士口味

抽象工厂

各位是不是发现抽象工厂和工厂方法有点类似,是的,抽象工厂的方法经常以工厂方法的方式实现。抽象工厂的任务是顶一个一个负责创建一组产品的接口。这个接口内的每个方法都负责创建一个具体的产品,同时我们利用实现抽象工厂的子类来提供这些具体的做法。所以抽象工厂中利用工厂方法实现生产是相当自然的做法

文章来源:智云一二三科技

文章标题:Java 简单工厂-工厂方法-抽象工厂设计模式

文章地址:https://www.zhihuclub.com/187867.shtml

关于作者: 智云科技

热门文章

网站地图