工厂方法模式(Factory Method Pattern)

原文地址:https://jaune162.blog/design-pattern/factory-method-pattern/

概述

工厂方法模式(Factory Method Pattern)是一个对象创建型模式。

定义一个用于创建对象的接口,让子类决定实例化哪一个类。 Factory Method使一个类的实例化延迟到其子类。

– 《设计模式:可复用面向对象软件的基础》

说的更直白一点就是,定义一个工厂接口,将对象的实例化操作放到工厂的实现类中。

解析

这个例子中有饮品 Drink 和饮品工厂 DrinkFactoryDrinkFactory 负责生产 Drink。在现实生活中可口可乐(Coca)和奶茶(MilkyTea),不是由一家生产的,而是生产可口可乐的工厂生产可口可乐,Coco奶茶店可以生产奶茶。

当我们需要奶茶饮品的时候就需要用 CocoDrinkFactory 生产,当我们需要可口可乐的时候就需要用 CocaDrinkFactory 生产。

这个例子不太恰当,因为我们不会直接从可口可乐工厂购买可口可乐。但是我认为用这个例子来解释工厂方法模式是没有问题的。而且能够清晰的描述出工厂方法模式的使用场景。

public interface Drink {
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/460402.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手动汉化unity编辑器,解决下载中文语言报错问题

手动汉化unity编辑器,解决下载中文语言报错问题 START 最近在下载支持微信小程序版本的编辑器时,中文语言包,一直无法下载。记录一下 手动汉化unity编辑器的方法 ,帮助和我遇到同样问题的人。 解决方案 1. 下载汉化包 https:…

jvm几个常见面试题整理

1. Full GC触发机制有如下5种情况。 (1)调用System.gc()时,系统建议执行Full GC,但是不必然执行。(2)老年代空间不足。(3)方法区空间不足。(4)老年代的最大可用连续空间小于历次晋升到老年代对象的平均大小就会进行Full GC。(5)由Eden区、S0(From)区向S…

元宇宙虚拟数字人实训室:推动高校培养创新技术人才

随着元宇宙时代的到来,虚拟数字人技术逐渐成为当下火热的产业赛道之一。虚拟数字人涉及了计算机、数字媒体、市场营销等学科技术领域,高校可以通过搭建元宇宙虚拟数字人实训室,有效培养对元宇宙行业的专业化理解和研究能力的专业型创新人才。…

Unity类银河恶魔城学习记录4-4 4-5 P57-58 On Hit Impactp- Attack‘direction fix源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Entity.cs using System.Collections; using System.Collections.Generic;…

【数据结构】堆(创建,调整,插入,删除,运用)

目录 堆的概念: 堆的性质: 堆的存储方式: 堆的创建 : 堆的调整: 向下调整: 向上调整: 堆的创建: 建堆的时间复杂度: 向下调整: 向上调整&#xff…

通过websocket 获取mt4软件 实时数据

首先前往github下载 https://github.com/mikha-dev/mt4-websockets 项目 把里面的项目复制到mt4软件目录里。 操作如下: 点开文件->打开数据文件夹 复制进去。 记得点击工具->选项 勾选这些选项。 我们会在 mt4里看到websockets这个文件,右键…

Mysql为什么使用B+Tree作为索引结构

B树和B树 一般来说,数据库的存储引擎都是采用B树或者B树来实现索引的存储。首先来看B树,如图所示: B树是一种多路平衡树,用这种存储结构来存储大量数据,它的整个高度会相比二叉树来说,会矮很多。 而对于数…

【网页设计期末】茶文化网站

本文资源:https://download.csdn.net/download/weixin_47040861/88818886 1.题目要求 设计要求: (1)网站页面数量不少于4个,文件命名规范,网站结构要求层次清楚,目录结构清晰,代码…

【RT-DETR有效改进】计算训练好权重文件对应的FPS、推理每张图片的平均时间(科研必备)

👑欢迎大家订阅本专栏,一起学习RT-DETR👑 一、本文介绍 本文给大家带来的改进机制是利用我们训练好的权重文件计算FPS,同时打印每张图片所利用的平均时间,模型大小(以MB为单位),同时支持batch_size功能的选择,对于轻量化模型的读者来说,本文的内容对你一定有…

HarmonyOS4.0——IPC与RPC通信

基本概念 IPC(Inter-Process Communication)与RPC(Remote Procedure Call)用于实现跨进程通信,不同的是前者使用Binder驱动,用于设备内的跨进程通信,后者使用软总线驱动,用于跨设备…

计算机设计大赛 深度学习 大数据 股票预测系统 - python lstm

文章目录 0 前言1 课题意义1.1 股票预测主流方法 2 什么是LSTM2.1 循环神经网络2.1 LSTM诞生 2 如何用LSTM做股票预测2.1 算法构建流程2.2 部分代码 3 实现效果3.1 数据3.2 预测结果项目运行展示开发环境数据获取 最后 0 前言 🔥 优质竞赛项目系列,今天…

物理信息神经网络(PINN): 将物理知识融合到深度学习中

物理信息神经网络(PINN): 将物理知识融合到深度学习中 物理信息神经网络(PINN)简介PINN的工作原理PINN模型如何利用物理法则指导模型训练1. 定义物理问题和相应的物理定律2. 构建神经网络3. 定义损失函数数据误差项 (Data-fidelit…