美文网首页从零学Java笔录凯哥Java-工作总结
设计模式之工厂模式一简单工厂模式

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

作者: 凯哥Java | 来源:发表于2019-08-25 10:59 被阅读0次

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

工厂模式由来:

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

来源:凯哥Java(kaigejava)

工厂模式主要的分类:

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

简单工厂模式:

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

如何理解?

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

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

如:面馆里面可以做的西红柿鸡蛋面、牛肉拉面、刀削面、哨子面、biangbiang面及热干面。

我们就来模拟这种场景:

我们先来看项目结构:

说明:

1:面条接口类

2:具体面条实现类

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

4:测试类型

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

INoodlesInterface

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

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元。");

   }

}

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

我们来看看面馆对象:

里面由三部分:

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

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

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("热干面");

   }

}

另一个方法类似。

查看测试类:

查看运行结果:

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

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

简单工厂模式几个角色:

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

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

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

触发事件:

通过菜单的序号或者是面条名称触发工厂类制作对象的。

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

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

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

相关文章

  • iOS设计模式(三)之抽象工厂模式

    设计模式系列传送门 iOS设计模式(一)之简单工厂模式iOS设计模式(二)之工厂模式iOS设计模式(三)之抽象工厂...

  • iOS设计模式(一)之简单工厂模式

    设计模式系列传送门 iOS设计模式(一)之简单工厂模式iOS设计模式(二)之工厂模式iOS设计模式(三)之抽象工厂...

  • iOS设计模式(二)之工厂模式

    设计模式系列传送门 iOS设计模式(一)之简单工厂模式iOS设计模式(二)之工厂模式iOS设计模式(三)之抽象工厂...

  • 设计模式之工厂模式

    设计模式之工厂模式 1. 简单工厂模式 1.1 模式定义 简单工厂模式又称为静态工厂方法,它属于创建型模式。在简单...

  • 简单工厂模式

    Android进阶之设计模式 简单工厂模式 简单工厂模式(又叫作静态工厂方法模式), 其属于创建型设计模式,但并不...

  • 设计模式-工厂模式

    设计模式1 设计模式2 工厂模式 工厂模式可简单的分为三类:简单工厂,工厂方法,抽象工厂 简单工厂模式 定义 简单...

  • 找女朋友之简单工厂模式,工厂模式,抽象工厂模式

    找女朋友之简单工厂模式,工厂模式,抽象工厂模式 找女朋友之简单工厂模式,工厂模式,抽象工厂模式

  • 2016.06笔记

    iOS设计模式之工厂模式(简单工厂,工厂方法,抽象工厂) 简单工厂:简单工厂模式的工厂类一般是使用静态方法,通过接...

  • 设计模式四、抽象工厂模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 抽象工厂模式 ...

  • 设计模式三、工厂模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 工厂模式 在一...

网友评论

    本文标题:设计模式之工厂模式一简单工厂模式

    本文链接:https://www.haomeiwen.com/subject/jqdhectx.html