工厂模式

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

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

实现案例:

女娲造人

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

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

工厂模式

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

黑种人

工厂模式

白种人

工厂模式

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

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

工厂模式

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

工厂模式

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

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

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

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

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

(0)

大家都在看

  • 使用SLF4J和LOGBACK (一 : 基本使用)

    上边两行代码中的Logger和LoggerFactory对象均来自SLF4J包中。 具体的日志实现框架,我们可以选择LOG4J,LOGBACK等作为日志的具体实现,但是日志的打印输…

    Java 2023年6月16日
    098
  • NO4 系统移植-项目技术资料共享解决方案

    系统移植项目-技术资料共享解决方案 前言 本文只做解决方案分析,不做具体技术点的说明 一:为什么需要技术资料的共享 系统移植项目的移植点可以分:(1)操作系统移植,例如:由wind…

    Java 2023年6月8日
    0108
  • ssm项目使用过滤器出现4040错误

    过滤器处理乱码问题 public class CharFilter implements Filter { @Override public void init(FilterCon…

    Java 2023年6月5日
    066
  • <3>Linux-文件操作命令(2)

    vi 编辑器的使用 vi 简介 vi可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其环境进行定制.只是一个文本编辑器,不能排版。vi没有菜单,只…

    Java 2023年6月15日
    080
  • 解决idea中每次创建项目都要重复配置maven,来看全网仅需几步全局配置

    你是不是idea每次创建项目都要重新配置maven呢?为啥呢老憋屈了。因为你之前的每一次的maven配置都是在项目中去配置的 ,所以只会在本项目中生效。也就是说在项目中配置的是 &…

    Java 2023年6月5日
    096
  • 2022保研经历-有删减

    2022 保研经历 我也知道大家仅仅是想看题目而已。 恕我直言,那些 排版混乱 ,看起来讲了很多,实际上既没有提供面试题目,也没有提供备考经验,反而只感动自己、像记流水账、对别人没…

    Java 2023年6月7日
    066
  • 数据库的基本信息,都在这几张表里了

    话说生产环境的数据库是不能本地直连的,所以公司一般都会提供一个比较简陋的数据库查询页面,在可控的范围内,支持你提交一些查询、变更SQL,满足你的查库功能。但是因为不能直接使用Nav…

    Java 2023年6月5日
    065
  • Vue初探

    MVVM模型 M:模型(Model) :对应 data 中的数据 V:视图(View) :模板(理解为html页面) VM:视图模型(ViewModel) : Vue 实例对象 数…

    Java 2023年6月9日
    079
  • 为Eclipse创建Ant的build.xml文件编辑自动提示

    JavaEE版的Eclipse自动集成了Ant插件,但是,并没有提供Ant的DTD文件。原因在Apache官网的Ant项目下的FAQ中有解释,原文如下: **Is there a …

    Java 2023年6月8日
    058
  • Java终止线程的三种方式

    停止一个线程通常意味着在线程处理任务完成之前停掉正在做的操作,也就是放弃当前的操作。 在 Java 中有以下 3 种方法可以终止正在运行的线程: 使用退出标志,使线程正常退出,也就…

    Java 2023年5月29日
    088
  • 用户管理

    用户管理 添加用户 基本语法 useradd 用户名 示例:添加一个用户名为tom的用户 useradd tom 细节说明 当创建用户成功后,会自动的创建和用户名同名的家目录 也可…

    Java 2023年6月5日
    096
  • Spring Cloud Gateway 不小心换了个 Web 容器就不能用了

    最近组员修改微服务的一些公共依赖,在某个依赖中需要针对我们微服务使用的 Undertow 容器做一些订制,所以加入了 web 容器 Undertow 的依赖。但是,一般这种底层框架…

    Java 2023年6月7日
    0155
  • 获取 Spring heapdump中的密码明文

    Actuator是Spring Boot提供的应用系统监控的开源框架。在攻防场景里经常会遇到Actuator配置不当的情况,攻击者可以直接下载heapdump堆转储文件,然后通过一…

    Java 2023年5月30日
    067
  • Pinpoint2.X搭建重要信息

    这里提供一个Pinpoint2.X搭建重要信息,因为最近在搭建Pinpoint,基本全部的流程都走了一遍,我这边是准备自己后续维护Pinpoint,写插件是必须的,也有可能研究一下…

    Java 2023年6月14日
    074
  • 关于如何在window下执行SQLSERVER的定时备份

    引言 在使用SqlServer Express 版本的时候发现,这个版本不支持通过数据库的代理方式进行数据库的维护。 解决方案 使用SQL语句加windows任务计划的方式解决具体…

    Java 2023年6月15日
    089
  • Metro 界面设计案例

    Metro是微软的一贯设计风格,相对Google的Material Desgin ,Metro更加的简洁,清晰明了。 Material 的设计也是很不错的,而且在Android,W…

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