Java课堂|餐饮的本质(设计模式之工厂模式)

这篇具有很好参考价值的文章主要介绍了Java课堂|餐饮的本质(设计模式之工厂模式)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

本文主要讲述工厂模式,文中使用通俗易懂的案例,使你更好的学习本章知识点并理解原理,做到有道无术。

一.什么是工厂模式

工厂模式是23种设计模式中创建型模式的一种,它是一个最简单的对象创建管理方式,根据调用方传递的类型来创建对象并返回。封装了对象创建的过程,降低了程序模块之间的耦合度。

二.生活中的工厂模式

1.沙县小吃

江帅记得沙县有炒饭、炒粉、云吞、馄饨、蒸饺、汤等各种各样的餐品,而你在沙县只需要告诉老板你想要什么并付款,老板会制作好相关的食物给到你,你不需要了解食物到底是怎么样制作出来的,只需要传递需求就能获取想要的东西,这就跟设计模式的工厂模式很相似。

Java课堂|餐饮的本质(设计模式之工厂模式)

2.金拱门(麦当劳)与开封菜(KFC)

麦当劳和肯德基是著名的快餐店,有诸多食品,比如汉堡。汉堡这个食物是由他们提供给我们的,而我们只需要告诉餐厅我们需要的是哪个汉堡并付钱就可以了,具体他们是怎么完成这个汉堡的,就不需要我们去考虑了,而这就像设计模式的工厂模式一样。

Java课堂|餐饮的本质(设计模式之工厂模式)

3.茶餐厅

这些茶餐厅也跟其他餐饮一样,你只需要告诉店员你想要的餐品并付款,后厨就能跟你的需求制作出你点的美食,你也无需关注它如何制作出来的,这也就跟设计模式的工厂模式很相似。

Java课堂|餐饮的本质(设计模式之工厂模式)

三.工厂模式的实现

接下来江帅以一家茶餐厅来举例,用工厂模式来实现。先创建一个抽象产品类食物类和两个具体产品类奶茶类和三明治类

package com.qianfeng.ran
/\*

*   @author:江帅
*
*   抽象产品
*        定义一个所有食物的抽象父类:食物类

\*/
public abstract class Food{
//定义一个打印当前食物名的方法
void pirntName();
}

/\*

*   具体产品
*        创建一个继承食物类的子类:奶茶类

\*/
class MikeTea extends Food{
//重写父类的抽象方法
public void printName(){
System.out.println("奶茶");
}
}

/\*

*   具体产品
*        创建一个继承食物类的子类:三明治类

\*/
class Sandwich extends Food{
//重写父类的抽象方法
public void printName(){
System.out.println("三明治");
}
}

再创建一个具体工厂,类似茶餐厅

package com.qianfeng.ran
/*
 * @author:江帅
 *	
 * 	具体工厂
 *		定义一个工厂类:茶餐厅
 */
public class TeaRestaurantFactory{
	//定义一个根据需求返回具体食物对象的静态方法,类似厨房
    public static Food kitchen(String type){
        //判断传递进来的需求是否为 null ,为 null 则返回 null 对象
    	if(type == null){
            return null;
        }
        //根据需求返回对应的食物对象
        if("1".equals(type)){ //假设传递"1"为需要奶茶
            //返回奶茶对象
            return new MikeTea();
        }else if("2".equals(type)){//假设传递"2"为需要三明治
            //返回三明治对象
            return new Sandwich();
        }
    }
}

最后通过工厂类(茶餐厅)调用对应的静态方法(厨房)并传递需求(字符串)获取对象(食物)

package com.qianfeng.ran
/*
 * @author:江帅
 *	
 * 	客户端
 */
public class Demo{
    public static void main(String[] args){
        //调用工厂类的静态方法,并传递字符串"1"获取奶茶对象
        Food mikeTea = TeaRestaurantFactory.kitchen("1");
        //执行结果:
        //"奶茶"
        System.out.println(mikeTea.printName());
        //调用工厂类的静态方法,并传递字符串"2"获取三明治对象
        Food sandwich = TeaRestaurantFactory.kitchen("1");
        //执行结果:
        //"三明治"
        System.out.println(sandwich.printName());
    }
}

四.配套视频

如果你不习惯阅读技术文章,或是对文中的技术概念不能很好地理解,可以来看看江帅帮你筛选出的视频教程。

与本文配套的Java学习视频,戳我直达

五.总结

在工厂模式中,咱们只需要传递需求给工厂类的方法,就能获取我们所需要的对象,从而降低类与类之间的耦合度,我们也无需了解类的创建过程和对象的创建过程,只需要关注对象的使用即可。

但是工厂模式有个弊端,就是每添加多一个具体产品类,则需要改动工厂类里的方法,这就违背了设计模式中的开闭原则。就像茶餐厅里多一个菜品时,我们就需要更新菜单。

下一章,我们将带大家学习企业的运行模式(设计模式之抽象工厂模式)。文章来源地址https://www.toymoban.com/news/detail-465553.html

到了这里,关于Java课堂|餐饮的本质(设计模式之工厂模式)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java设计模式【工厂方法模式】

    工厂方法模式 ( FACTORY METHOD )是一种常用的类创建型设计模式,此模式的核心精神是封装类中变化的部分,提取其中个性化善变的部分为独立类,通过依赖注入以达到解耦、复用和方便后期维护拓展的目的。它的核心结构有四个角色,分别是抽象工厂;具体工厂;抽象产品;

    2024年02月05日
    浏览(60)
  • Java设计模式-抽象工厂模式

    设计模式是软件设计中的一种常见方法,通过定义一系列通用的解决方案,来解决常见的软件设计问题。其中,抽象工厂模式是一种非常常见的设计模式,它可以帮助我们创建一组相关的对象,而不需要指定具体的实现方式。 抽象工厂模式是一种创建型设计模式,它提供了一

    2024年02月01日
    浏览(44)
  • java设计模式【抽象工厂模式】

    抽象工厂模式 是对简单工厂模式的一个变种,它允许通过一个统一的接口来创建不同的产品实例,而无需指定具体的子类。在这个模式中,我们只关心产品的抽象接口,而将具体的产品实现留给子类去实现。这样,我们可以通过创建不同的工厂对象来创建不同的产品实例,而

    2024年02月05日
    浏览(48)
  • java设计模式-工厂方法模式

    定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。 用户只需要知道具体工厂的名称就可得到所要的产品,无须知道产品的具体创建过程; 在系统增加新的产品时只需要添加

    2024年02月04日
    浏览(46)
  • Java设计模式 (二) 工厂模式

    什么是工厂模式? 工厂模式是一种创建型设计模式,它提供了一种统一的方式来创建对象,隐藏了对象的创建细节,使客户端代码与具体类的实例化过程解耦。工厂模式可以帮助您在不暴露对象创建细节的情况下实例化对象,从而提高代码的灵活性和可维护性。 工厂模式通常

    2024年02月12日
    浏览(37)
  • Java设计模式---单例 工厂 代理模式

    单例模式是设计模式中的一种,属于创建型模式。在软件工程中,单例模式确保一个类只有一个实例,并提供一个全局访问点。这种模式常用于那些需要频繁实例化然后引用,且创建新实例的开销较大的类,例如数据库连接池、缓存管理等。 意图 :保证一个类仅有一个实例

    2024年01月24日
    浏览(52)
  • 【java设计模式】创建型模式介绍(工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式)

    简介 本文介绍Java设计模式中创建型模式的五种 一、工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 工厂模式提供了一种将对象的实例化过程封装在工厂类中的方式。通过使用工

    2024年02月16日
    浏览(47)
  • Java工厂设计模式

    工厂设计模式是一种创建型设计模式,它允许你创建对象,但不暴露其创建逻辑。该模式定义了一个工厂类,该类负责创建对象。这样,客户端代码只需知道如何与工厂交互,而不必知道对象的实际创建方式。 下面是工厂设计模式的通用结构:

    2024年02月07日
    浏览(35)
  • Java课堂之程序中的套路(设计模式的介绍)

    本文主要是给大家简单地介绍一下 设计模式 的概念,文中会使用通俗易懂的案例,使你更好地学习本章知识点并理解原理,做到有道无术 首先我们得知道什么是设计模式。所谓的 设计模式(Design Pattern) ,其实就是一套被反复使用、多数人知晓的、经过分类编目的、代码设计

    2024年02月08日
    浏览(76)
  • Java与设计模式(1):简单工厂模式

    简单工厂模式(Simple Factory Pattern)是一种创建型设计模式,它提供了一种创建对象的方式,将对象的创建逻辑封装在一个工厂类中,而不是直接在客户端代码中进行实例化。 在简单工厂模式中,有三个主要角色: 工厂类(Factory Class):负责创建具体对象的工厂类。它通常包

    2024年02月11日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包