工厂模式

工厂模式,是java中最常用的设计模式。这类设计模式,属于创建型设计模式,它提供了一种创建对象的最佳方式。

我们创建对象不用暴露创建的逻辑,只需要使用这个接口,提供必要的信息就能从工厂中获取相应的对象。

实现案例:

女娲造人

女娲可以创建三类人,黑种人,白种人,黄种人,我们只需要知道我们想要创建的肤色就可以直接调用工厂,获得对应肤色的人

第一步:创建一个人类接口

工厂模式

第二步:分别创建三类人,实现人类的接口

黑种人

工厂模式

白种人

工厂模式

黄种人就自己写了吧,哈哈。

第三步:创建一个工厂类,把这些对象整理进去,根据名称,创建对应的对象

工厂模式

最后女娲就开始创建对应的人类了

工厂模式

简单的工厂模式就创建好了。

下一篇:抽象工厂模式,敬请期待吧

Original: https://www.cnblogs.com/itmuzi/p/16320193.html
Author: itMuzi
Title: 工厂模式

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/592373/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • LeetCode题解—-两数之和

    给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答…

    Java 2023年6月6日
    072
  • Spring Boot缓存应用实践

    缓存是最直接有效提升系统性能的手段之一。个人认为用好用对缓存是优秀程序员的必备基本素质。 本文结合实际开发经验,从简单概念原理和代码入手,一步一步搭建一个简单的二级缓存系统。 一、…

    Java 2023年5月30日
    069
  • java 监听redis事件

    第一步:利用RDM等redis连接工具查看相应事件,然后去网上搜索 一下,会有redis各种事件的说明,选择契合业务的事件; 第二步:创建监听处理类; 1 package com….

    Java 2023年6月6日
    085
  • MySQL 事务基础知识

    数据库事务概述 事务是数据库区别于文件系统的重要特性之一,当我们有了事务就会让数据库始终保持 一致性,同时我们还能…

    Java 2023年6月8日
    065
  • 线程通信和8锁问题

    线程通信 1、场景:生产者和消费者问题 ==仓库、生产者、消费者 ====仓库只能存放一个产品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取走 ====如果仓库中没有产品,…

    Java 2023年6月5日
    076
  • java-单例详解

    一. 什么是单例模式 因程序需要,有时我们只需要某个类同时保留一个对象,不希望有更多对象,此时,我们则应考虑单例模式的设计。 二. 单例模式的特点 单例模式只能有一个实例。 单例类…

    Java 2023年6月8日
    070
  • 构建者模式(Builder pattern)

    构建者模式应用场景: 主要用来构建一些复杂对象,这里的复杂对象比如说:在建造大楼时,需要先打牢地基,搭建框架,然后自下向上地一层一层盖起来。通常,在建造这种复杂结构的物体时,很难一…

    Java 2023年6月9日
    081
  • nginx+tomcat 架构 HttpServletRequest.getScheme()获取正确的协议

    问题:通过浏览器输入https://www.mysite.com,后台通过request.getScheme()获取到的确实http而不是https 通过request.getRe…

    Java 2023年5月30日
    066
  • 集群

    前言 本文基于Dubbo2.6.x版本,中文注释版源码已上传github:xiaoguyu/dubbo 集群(cluster)就是一组计算机,它们作为一个总体向用户提供一组网络资源…

    Java 2023年6月16日
    087
  • 《SpringBoot官网文档:2.1.5》

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年6月6日
    050
  • 配置中心的设计-nacos vs apollo

    和 apollo 一样,nacos 也是一款配置中心,同样可以实现配置的集中管理、分环境管理、即时生效等等。不过,nacos 还具备了服务发现的功能。 分析 apollo 时,我们…

    Java 2023年6月14日
    066
  • SpringBoot如何实现定时任务

    写在前面 SpringBoot创建定时任务的方式很简单,主要有两种方式:一、基于注解的方式(@Scheduled)二、数据库动态配置。实际开发中,第一种需要在代码中写死表达式,如果…

    Java 2023年6月16日
    077
  • Java的jps命令使用详解

    jps(Java Virtual Machine Process Status Tool)是JDK提供的一个可以列出正在运行的Java虚拟机的进程信息的命令行工具,它可以显示Jav…

    Java 2023年6月7日
    095
  • List的同步类比较

    TL;NRs CopyOnWriteArrayList类在多线程顺序读取上有很大的优势,但在随机读取上反而有较大的劣势,且在写入方面性能极差。 Vector类在顺序读取方面性能较差…

    Java 2023年6月9日
    065
  • 购买新电脑后必做的几件事(操作系统为Windows)

    新买的电脑,无论是台式机,还是笔记本,买来之后,通常都有一些事情,是必须要做的,特别是 Windows 电脑。 以下详细描述: 1. 连上互联网,更新 Wiindows 系统。 主…

    Java 2023年6月9日
    080
  • 记一次SQL优化

    昨天(2022-7-22)上线了我的一个功能,测试环境数据量较小,问题不大,但是上生产之后,直接卡死了,然后就开始了这么一次SQL优化,这里记录一下。 不太方便透露公司的表结构,这…

    Java 2023年6月5日
    052
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球