工厂模式

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

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

实现案例:

女娲造人

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

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

工厂模式

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

黑种人

工厂模式

白种人

工厂模式

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

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

工厂模式

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

工厂模式

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

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

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

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

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

(0)

大家都在看

  • 我的 web 前端开发技术选择

    不使用 mvvm 之类的前端组件,是因为我觉得没有必要。 mvvm 常见的宣传,对我来说没什么吸引力,反而增加了技术的复杂度。 一、Javascript 操作 DOM 慢。我不觉得…

    Java 2023年6月9日
    078
  • Java开发学习(二十)—-AOP总结

    切入点表达式标准格式:动作关键字(访问修饰符 返回值 包名.类/接口名.方法名(参数)异常名) execution(* com.itheima.service.*Service.*…

    Java 2023年5月29日
    068
  • 设置Typora自适应宽度以及图片居左

    前提: 已安装好Typora 一、设置Typora自适应宽度 Typora在最大化窗口后,书写区域没有跟随最大化,还处于中间位置,不太人性化 2、调整Typora书写区域为自适应宽…

    Java 2023年5月30日
    078
  • WC2022入职集训课程【职场礼仪与职业素养】

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

    Java 2023年6月5日
    065
  • AJAX学习(1)

    基础确认:HTML、CSS、JavaScript AJAX可以: Ajax 的核心是 XMLHttpRequest 对象,用于和服务器交换数据。 xmlhttp.open(&quo…

    Java 2023年6月9日
    096
  • HTML基础笔记整理

    「学习笔记」HTML基础 勤做笔记不仅可以让自己学的扎实,更重要的是可以让自己少走弯路。有人说:”再次翻开笔记是什么感觉”,我的回答是:”初恋般…

    Java 2023年6月7日
    080
  • 前端(DOM、BOM和事件) 4

    js包含ECMAScript、DOM、BOM。BOM(browser object model)浏览器对象模型,使js获得了操纵浏览器的能力。DOM(document object…

    Java 2023年6月5日
    096
  • 【SpringBoot】使用属性文件给成员变量配置值对final成员变量是无效的,只对普通成员有效

    【结论】 使用属性文件给成员变量配置值对final成员变量是无效的,只对普通成员有效。 【证明】 待注入类Test: 属性文件application.properties: 测试类…

    Java 2023年5月29日
    071
  • 关于es update异常 ScriptException[dynamic scripting for [groovy] disabled]

    你需要在elasticsearch.yml中配置 script.disable_dynamic: false 然后别忘了重启。 Original: https://www.cnbl…

    Java 2023年6月7日
    0105
  • Cnblogs-Theme-SimpleMemory 定制分享

    配置文件 这是我个人参考官方的配置指南根据自己的需求配置的, 部分功能添加后效果不理想故而注释 用户图像横幅图片,推荐下载保存到本地然后上传到 Github 再用此连接。 防止日后…

    Java 2023年6月5日
    078
  • Phoenix简介及安装部署使用

    Phoenix简介及安装部署使用 posted @2017-10-14 11:33 花弄影 阅读(374 ) 评论() 编辑 Original: https://www.cnblo…

    Java 2023年6月16日
    071
  • [javaweb]jsp,jstl,el表达式的使用

    jsp java server page:java服务器前端页面,和servlet一样,用于动态web开发。 特点: 写jsp页面就像在写html html只给用户提供静态数据,j…

    Java 2023年6月6日
    095
  • Maven基础学习笔记

    Maven基础学习笔记 下载链接 官网:https://maven.apache.org/ 所有版本:https://archive.apache.org/dist/maven/m…

    Java 2023年6月5日
    097
  • 碎碎念五九

    04.01 我曾有一台华硕 F8P,是本科毕业时哥哥给我买的。虽然有点笨重,却陪我度过了近十年。它陪我度过读研三年(学习技术基础和师兄们做项目)、找到第一份不错的工作及在阿里云度过…

    Java 2023年6月9日
    092
  • SpringBoot系列之从入门到精通系列教程

    本专栏基于Springboot2.2.3,配套自己写的代码例子,内容涉及配置用法,web,数据库,Redis,也涉及到企业级开发的消息队列,dubbo,单点登录,OAuth2,搜索…

    Java 2023年5月30日
    083
  • idea集成maven插件和使用骨架创建maven的java工程

    idea集成maven插件 打开idea点击配置搜索maven 配置自己的maven路径和仓库位置 使用骨架创建maven的java工程 项目结构: Original: https…

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