热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

抽象工厂模式(Abstractfactory)

工厂模式定义:对客户端而言,隐藏对象创建逻辑,也不需要使用new生成对象;工厂模式实现方式:创建一个接口如Sh
  • 工厂模式定义:对客户端而言,隐藏对象创建逻辑,也不需要使用new生成对象;
  • 工厂模式实现方式:
    • 创建一个接口如Shape;
    • 创建具体类实现Shape,比如圆形、方形、三角形;
    • 创建Shape的Factory,通过Shape类型来判断创建不同的具体类;
    • 最后客户端先创建一个Shape工厂,然后传递不同的shape类型参数获取具体类;

 

  • 抽象工厂定义:创建其它工厂的超级工厂;
  • 抽象工厂实现方式:
  • 创建一个接口如Shape和Color;
  • 创建具体的类实现上述各自的接口方法;
  • 创建一个抽象工厂类可得到Shape和Color对象;
  • 创建Shape和Color各自工厂类并集成抽象工厂类,可生产具体的Shape和Color类,比如圆形、方形、三角形;
  • 创建一个工厂生产者,该类可根据外部传进来的参数判断选择对应的工厂;
  • 最后使用这个工厂生产者,获得对应的工厂,并生产具体类。

 

 

  • JDK实例:;
  • 项目实例:各搜索领域通过工厂模式自动创建;
  • 优点:;
  • 缺点:;

转:https://www.cnblogs.com/stpan/p/9551596.html



推荐阅读
  • 微信小程序中实现位置获取的全面指南
    本文详细介绍了如何在微信小程序中实现地理位置的获取,包括通过微信官方API和腾讯地图API两种方式。文中不仅涵盖了必要的准备工作,如申请开发者密钥、下载并配置SDK等,还提供了处理用户授权及位置信息获取的具体代码示例。 ... [详细]
  • 在程序运行过程中,各种编程语言都会动态创建对象,并为其分配内存。当这些对象不再使用时,释放其所占内存变得至关重要,以确保资源的有效利用。本文深入探讨了垃圾回收(GC)的工作原理,包括如何识别、何时及如何回收不再使用的对象。 ... [详细]
  • 深入解析8086 CPU的转移指令
    本文详细介绍了8086 CPU中的转移指令,包括无条件转移、条件转移、循环指令及过程调用等,同时探讨了offset操作符的功能及其应用实例。 ... [详细]
  • 本文最初发布于作者的个人博客,附有Tirza van Dijk在Unsplash上拍摄的照片。作者Miguel Piedrafita是一位15岁的开发者,他分享了自己创建专为青少年设计的编程社区——CoderYouth的故事。 ... [详细]
  • Barbican 是 OpenStack 社区的核心项目之一,旨在为各种环境下的云服务提供全面的密钥管理解决方案。 ... [详细]
  • 本文详细介绍了Java集合框架中的Collection体系,包括集合的基本概念及其与数组的区别。同时,深入探讨了Comparable和Comparator接口的区别,并分析了各种集合类的底层数据结构。最后,提供了如何根据需求选择合适的集合类的指导。 ... [详细]
  • 本文介绍了如何通过ARM编译器组件重定向标准C运行时库的I/O函数,以适应不同的硬件平台。原文链接:https://www.keil.com/pack/doc/compiler/RetargetIO/html/retarget_overview.html ... [详细]
  • 交互式左右滑动导航菜单设计
    本文介绍了一种使用HTML和JavaScript实现的左右可点击滑动导航菜单的方法,适用于需要展示多个链接或项目的网页布局。 ... [详细]
  • 本文详细介绍如何在 Windows 环境下安装 Ubuntu 12.04 版本的 Linux 操作系统,包括必要的软件下载、配置步骤以及注意事项。 ... [详细]
  • 解决vCenter vSphere HA初始化失败的问题
    本文探讨了在集群中遇到的所有vSphere HA主机状态显示‘无法正确安装或配置vSphere HA代理’错误的情况,并详细介绍了排查与解决步骤,包括检查HA初始化错误及安装HA代理的常见故障排除方法。 ... [详细]
  • 随着技术社区的发展,越来越多的技术爱好者选择通过撰写博客来分享自己的学习经验和项目进展。本文将介绍一个具体案例,即将一套原本运行于Windows平台的代码成功移植到Linux(Redhat)环境下的过程与挑战。 ... [详细]
  • JESD204C 入门:第2部分新特性及其内容
    本文内容来自ADI的技术文章,作者:DelJones原网址为:https:www.analog.comcnanalog-dialoguea ... [详细]
  • 在Windows Server 2008 R2上配置IIS FTP服务
    本文详细介绍了如何在Windows Server 2008 R2操作系统上通过IIS配置FTP服务的过程,包括服务器角色的选择与安装、FTP站点的创建以及必要的服务和防火墙设置检查。 ... [详细]
  • 本文提供了在 Kali Linux 2020.01 x64 版本上安装 Docker 的详细步骤,包括环境准备、使用清华大学镜像源、配置 APT 仓库以及安装过程中的常见问题处理。 ... [详细]
  • 本文详细介绍了如何正确安装Java EE SDK,并解决在安装过程中可能遇到的问题,特别是关于servlet代码在Apache Tomcat 10中无法运行的情况。 ... [详细]
author-avatar
如果不曾相识_不曾相知_不曾相恋
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有