一文搞懂Java的工厂设计模式

工厂设计模式

长按关注《Java学研大本营》,加入读者群,分享更多精彩 扫码关注《Java学研大本营》,加入读者群,分享更多精彩

什么是工厂设计模式,什么时候必须使用它?让我们通过一个例子来理解它。在我的软件开发人员经验中,如果我尝试总结我使用最多的设计模式,那么工厂设计模式位居前三。当谈到单例模式或构建器模式时,许多库使用注释来提供此功能。工厂设计模式是唯一一个你必须自己实现的模式。

让我们来理解问题陈述,因此请考虑一种情况,您必须处理酒店客房预订服务,并且有三种类型的房间。普通房、豪华房、别墅。根据客户的要求,您必须在您的程序中创建一个对象。

正如我们所看到的,所有三个对象都应该扩展相同的接口/类,因为它们具有相同的功能。所以创建一个接口/类Room

class Room {
  public string getRoomId();
  public float getPrice();
}

现在为每种房间类型创建三个类。

class NoramalRoom extends Room {
  private string roomType;
  private string roomId;
  private float price;
}

class DeluxRoom extends Room {
  private string roomType;
  private string roomId;
  private float price;
}

class Villa extends Room {
  private string roomType;
  private string roomId;
  private float price;
}

我不会在类中添加更多功能,因此我们可以专注于设计模式。

现在根据客户的要求创建一个用于创建房间对象的类。这个类的名字是RoomFactory。首先,查看代码,然后我们进行解释。

class RoomFactory {
  public static Room getRoom(String roomType) {
    switch(roomType){
      case 'Normal':
        return new NormalRoom();
      case 'Delux':
        return new DeluxRoom();
      case 'Villa':
        return new Villa();
    }
  } 
}

这是一个工厂类,我觉得代码本身就解释了很多。这里我们有一个静态方法,这是这个类中唯一一个将字符串作为输入并根据它返回Room对象的方法。

现在任何图书馆都使用这个类并为房间创建一个对象。

推荐书单

《项目驱动零起点学Java》

《项目驱动零起点学Java》共分 13 章,围绕 6 个项目和 258 个代码示例,分别介绍了走进Java 的世界、变量与数据类型、运算符、流程控制、方法、数组、面向对象、异常、常用类、集合、I/O流、多线程、网络编程相关内容。《项目驱动零起点学Java》总结了马士兵老师从事Java培训十余年来经受了市场检验的教研成果,通过6 个项目以及每章的示例和习题,可以帮助读者快速掌握Java 编程的语法以及算法实现。扫描每章提供的二维码可观看相应章节内容的视频讲解。

《项目驱动零起点学Java》贯穿6个完整项目,经过作者多年教学经验提炼而得,项目从小到大、从短到长,可以让读者在练习项目的过程中,快速掌握一系列知识点。

马士兵,马士兵教育创始人,毕业于清华大学,著名IT讲师,所讲课程广受欢迎,学生遍布全球大厂,擅长用简单的语言讲授复杂的问题,擅长项目驱动知识的综合学习。马士兵教育获得在线教育“名课堂”奖、“最受欢迎机构”奖。

赵珊珊,从事多年一线开发,曾为国税、地税税务系统工作。拥有7年一线教学经验,多年线上、线下教育的积累沉淀,培养学员数万名,讲解细致,脉络清晰。

链接: https://item.jd.com/13607758.html

精彩回顾

部署Spring Boot应用程序

Java Spring Boot 3.0.0 RC1 震撼登场!

长按关注《Java学研大本营》

长按二维码,加入Java读者群

扫码关注《Java学研大本营》,加入读者群,分享更多精彩


版权声明:本文为u013643074原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>