Java设计模之简单工厂模式

image.png

设计模式之工厂模式一简单工厂模式

工厂模式由来:

在我们创建对象的时候使用,使用new操作的。如果多个对象创建都使用new会。所以工厂模式就是用来代理new操作的一种模式。根据工厂模式由来,我们可以看出工厂模式属于创建型模式。提供一种创建对象的最佳方式。

工厂模式主要的分类:

image.png

简单工厂模式、工厂方法模式、抽象工厂模式

简单工厂模式:

简单工厂模式不属于23中设计模式。又叫做静态工厂方法,简单工厂模式是工厂模式家族中最简单使用的一种模式。也可以理解为不同工厂模式的一个特殊实现。

如何理解?

举例:一个工厂类,一个产品的抽象类。

现实生活举例:一个面馆,可以生产多中面条。

如:面馆里面可以做的西红柿鸡蛋面、牛肉拉面、刀削面、哨子面、biangbiang面及热干面。对于新手小白想更轻松的学好Java提升,Java架构,web开发、大数据,数据分析,人工智能等技术,这里给大家分享系统教学资源,扩列下我尉(同英):CGMX9880 【教程/工具/方法/解疑】

我们就来模拟这种场景:

我们先来看项目结构:

image.png

说明:

1:面条接口类

2:具体面条实现类

3:简单工厂类(面馆对象)

4:测试类型

我们先来看看面条接口类:

INoodlesInterface

image.png

我们在来看看,面条具体实现类–西红柿鸡蛋面类对象里面:

public class TomatoAndEggNoodles implements INoodlesInterface {

private String noodlesName;

public TomatoAndEggNoodles{}

public TomatoAndEggNoodles(String noodlesName){

this.noodlesName = noodlesName;

}

@Override

public void noodlesdescription {

System.out.println(“大爷,您的”+this.noodlesName+“价格为:10元。”);

}

}

image.png

其他具体面条实现类里面类似。这里就不一一贴出来了。

我们来看看面馆对象:

image.png

里面由三部分:

菜单部分、根据菜单序号制作面条、根据面条名称制作面条。

我们来看看根据菜单序号制作面条的:

public static INoodlesInterface makeNoodlesByMenuType(int noodletType){

switch (noodletType){

case NOODLES_TYPE_1:

return new TomatoAndEggNoodles(“西红柿鸡蛋面”);

case NOODLES_TYPE_2:

return new HandPulledNoodleSoupWithBeef(“牛肉拉面”);

case NOODLES_TYPE_3:

return new HandPulledNoodleSoupWithBeef(“刀削面”);

case NOODLES_TYPE_4:

return new NoodleWithPork(“哨子面”);

case NOODLES_TYPE_5:

return new BiangBiangNoodles(“biangbiang面”);

case NOODLES_TYPE_6:

return new HotAndDryNoodles(“热干面”);

default:

return new HotAndDryNoodles(“热干面”);

}

}

image.png

另一个方法类似。

查看测试类:

image.png

查看运行结果:

image.png

运行结果,达到我们预期的。

现在我们来总结下简单工厂模式:

简单工厂模式几个角色:

image.png

1:共有的抽象父类或者接口。如:司小司面馆的面条接口对象

2:继承或是实现该接口的具体子类。如:西红柿鸡蛋面、biangbiang面等

3:创建对象的简单工厂类。如:司小司的面馆

触发事件:

通过菜单的序号或者是面条名称触发工厂类制作对象的。对于新手小白想更轻松的学好Java提升,Java架构,web开发、大数据,数据分析,人工智能等技术,这里给大家分享系统教学资源,扩列下我尉(同英):CGMX9880 【教程/工具/方法/解疑】

在来看看简单工厂模式特点:

通过一个类。是具体的类,并非接口或者抽象类的一个重要的创建方法,利用if判断语句说着是switch语句来进行判断,进而创建对应的产品。

其中,这个重要的创建方法通常都是静态的。所以,简单工厂模式也被称之为静态工厂.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值