Factory Method -对象创建模型

实践《重构与模式》(C++)——Creation Method + Factory + Factory Method (二) 如果说《设计模式》和《重构》是任督二脉,那么《重构与模式》就是帮助你打通任督二脉的武功秘籍。 本文介绍了《重构与模式》中Creation Method、Factory Method,以及用Factory封装类的相关内容。欢迎相互学习讨论 阅读详情

    1.意图
            定义一个用于对象创建的接口,让子类决定实例化哪个类,Factory Method
            使一个类的实例化延迟到其子类。
    2.参与对象
            Product,ConcreteProduct,Creator,ConcreteCreator
    3.结构

      

代码:

public interface Creator {
   public Product getProduct(); 
}

public interface Product {
   void play();
}

public class ConcreteCreatorA implements Creator {
	private final static ConcreteCreatorA concreteCreatorA = new ConcreteCreatorA();
    private ConcreteCreatorA(){
    	
    }
	public static Creator getConcreteCreatorA(){
    	return concreteCreatorA;
    }
	@Override
	public Product getProduct() {
		return new ConcreteProductA();
	}

}

public class ConcreteCreatorB implements Creator {
	private final static ConcreteCreatorB concreteCreatorB = new ConcreteCreatorB();
    private ConcreteCreatorB(){
    	
    }
	public static Creator getConcreteCreatorB(){
    	return concreteCreatorB;
    }
	@Override
	public Product getProduct() {
		return new ConcreteProductB();
	}

}

public class ConcreteProductA implements Product {

	@Override
	public void play() {
		System.out.println("A.play");
	}

}

public class ConcreteProductB implements Product {

	@Override
	public void play() {
		System.out.println("B.play");
		
	}

}

public class Client {
	public static void main(String[] args) {
         Creator creator = ConcreteCreatorB.getConcreteCreatorB();
         Product  product  =creator.getProduct();
         product.play();
	}
}

 

 

3小时搭建SpringBoot+Vue3图书管理系统:毕业设计实战指南 在现代Web应用开发中,前后端分离架构已成为主流范式,其核心在于通过RESTful API实现前后端职责解耦与独立部署。这一架构模式基于HTTP协议和JSON数据交换标准,允许前端专注于用户界面与交互逻辑,后端则集中于业务处理与数据持久化。其技术价值在于提升开发效率、增强系统可维护性,并支持技术栈的灵活选型。典型的应用场景包括企业管理系统、电商平台及内容展示网站。本文以SpringBoot和Vue3这一主流技术组合为例,详细演示如何快速构建一个完整的图书管理系统项目,涵盖从环境配置、数据库设计到前后端联调的 阅读详情

相关推荐

建立完整对象模型实例(包括类、关联、属 性、服务),对象模型-类间关系及其表示,类关系:泛化=实现>组合>聚集>关联>依赖

有一个影片租赁店,想要开发一个计算机软件来管理它的日常业务。它每天的主要工作是:接待顾客借出或还回影片。有一个影片租赁店,想要开发一个计算机软件来管理它的日常业务。它每天的主要工作是:接待顾客借出或还回影片。店里有两种影片:喜剧片和恐怖片。当一个顾客要租借影碟时,店员将查找顾客名单,如果找到了,该顾客的姓名以及以往的租赁纪录将显示出来。然后店 员查找影碟存货纪录,如果店内还有此影碟,则将生成一个租赁纪录,其中包含影碟号、日期、日租金等信息。然后店员将此租赁纪录记 录到此顾客的名下。

Sunshine的专栏 1092

软件工程 - 第8章 面向对象建模 - 2 静态建模

类图的核心组成类名,属性,操作关联(聚集、组合)、依赖、泛化、实现多样性(多重性):通常在关联、聚合、组合中使用,代表有多少个关联对象存在。使用数字…星号(数字)表示实体类,如学生、商品,来自需求说明中的名词;控制类,如增加商品类、用户注册类;边界类,如对话框、窗体、菜单1.研究分析问题领域,确定系统的需求。2.发现对象与类,明确它们的含义和责任,确定属性和操作。3.发现类之间的关系。把类之间的关系用关联、泛化、聚集、组合、依赖等关系表达出来。4.设计类与关系。

rc4gyyc的博客 6888

【Spring源码】18. factory-method创建对象关键函数详解:instantiateUsingFactoryMethod()

factoryMethod和args的相关判断,如果没解析过,就获取factoryClass的用户定义类型,因为此时factoryClass可能是CGLIB动态代理类型,所以要获取父类的类型。如果为空的话,就要去找出factoryClass的以及父类的所有方法,进一步找出方法修饰符一致且名字跟工厂方法名字相同的且是bean注解的方法,并放入列表里。如果获取到的候选方法只有一个,且传入的参数为空,且没有设置构造方法参数,就进行一系列的相关参数设置,然后返回BeanWrapperImpl对象。

aqin1012的博客 911

建立面向对象模型

楚凡科技(www.trufun.net)   10年间致力于做中国最专业的软件工程解决方案提供商   规范软件开发过程  优化软件开发流程 保证软件开发质量  提高软件开发效率 Trufun UML2建模工具、Trufun Bacon  需求管理工具、 Trufun 研发云管理工具等 对象的划分以行为的同类和属性的相同为标准。 在相同属性下,对系统中的行为进行分

企业级UML2建模工具、MDA工具、数据库建模工具、需求管理工具、集成开发平台 783

用好 Factory Method、Factory 与 Singleton:ABAP OO 里创建对象的七种进化路线

文章摘要: 本文通过ABAP开发中的时间戳示例,系统讲解了面向对象设计模式的演进过程。从静态工具类到实例类,再到接口解耦和工厂方法,展示了不同模式如何解决状态隔离、可测试性和扩展性问题。静态类虽然简单但存在全局状态风险,实例类实现状态隔离,接口提供多态能力,工厂方法则集中管理对象创建。这种渐进式演进揭示了ABAP面向对象开发的核心:通过合理设计控制对象生命周期和依赖关系,而非简单追求语法正确性。每个阶段都针对特定工程痛点提供解决方案,共同构建更健壮、可维护的ABAP代码体系。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 161

拆开华为BBU5900,看看5G基站的大脑里到底装了啥?

本文深度拆解华为BBU5900,揭示5G基站核心处理单元的硬件架构与设计哲学。通过详细解析模块化设计、智能电源系统和动态散热方案,展现其支撑千兆速率、毫秒级时延的技术奥秘,为5G网络部署提供实用参考。

weixin_31456563的博客 557

23种设计模式之Factory模式(一)

最近写大论文实在无聊,所以决定每天闲暇时学习一种设计模式,主要参考:设计模式:可复用面向对象的软件基础一书、设计模式精解-GoF23种设计模式解析附C++实现源码,还有https://blog.youkuaiyun.com/u011012932/article/category/6783147的博客(很多图是来自这里)。还是一样,边学边整理,方便日后查看。 目录创建型模式1. Factory模式问题结构示意图...

m0_37604894的博客 748

分布式 Agent 系统设计:高并发场景下的挑战与解决方案

分布式 Agent 系统由多个分布在不同节点上的智能 Agent 组成,这些 Agent 具有自主决策能力,能够通过通信协作完成复杂任务。每个 Agent 可以看作是一个独立的实体,具备感知环境、处理信息、执行动作的功能,它们相互协作,共同实现系统的整体目标。分布式 Agent 系统在高并发场景下面临着资源调度、通信延迟、状态一致性、容错处理和性能瓶颈等诸多挑战。通过采用动态资源分配、高效通信协议、分布式共识算法、冗余备份等解决方案,可以有效应对这些挑战,提高系统的性能、可靠性和可用性。

shuizhudan223的博客 1290

一文彻底搞懂大模型 - LLaMA-Factory

如何高效地微调和部署大型语言模型(LLM)?LLaMA-Factory作为一个开源的微调框架,应运而生,为开发者提供了一个简便、高效的工具,以便在现有的预训练模型基础上,快速适应特定任务需求,提升模型表现。LLaMA-Factory作为一个功能强大且高效的大模型微调框架,通过其用户友好的界面和丰富的功能特性,为开发者提供了极大的便利。

Z4400840的博客 3699

自动驾驶仿真 (四)—— 基于PreScan与Simulink的AEB系统多场景验证

本文详细介绍了基于PreScan与Simulink的AEB系统多场景验证方法,涵盖标准场景搭建、复杂工况扩展及控制策略优化。通过仿真技术,显著降低测试成本并提升场景覆盖率,有效解决实车测试中的痛点问题。特别适用于自动驾驶领域的AEB系统开发与验证。

weixin_28273593的博客 248

LVGL在STM32H743IIT6上的性能优化技巧:如何提升图形界面刷新速度

本文详细介绍了在STM32H743IIT6高性能MCU上优化LVGL图形界面刷新速度的实战技巧。通过利用芯片的DMA2D硬件加速模块替代低效的软件画点,将绘制缓冲区放入SDRAM并启用双缓冲机制,以及合理配置CPU缓存与MPU,有效解决了界面卡顿问题。文章还涵盖了LVGL引擎调优、内存架构优化等关键步骤,帮助开发者充分发挥STM32H743的硬件潜力,实现流畅的图形界面体验。

vscode6remote的博客 306

Factory Method (工厂方法)---对象创建型模型

Creator依赖它的子类ConcreateCreator来定义工厂的方法,所以它返回一个ConcreateProduct的实例。ConcreateCreator:重定义工厂方法,返回一个ConcreateProduct的实例。(2) Creator是一个具体的类,且提供缺省的方法。子类可定重新定义它的创建方式。定义一个创建对象的接口,让子类决定实例化哪一个类。当一个类,希望由它的子类,来指定它所创建的对象时。Product: 定义工厂创建的对象的接口。当一个类,不知道它所必须创建的类的类型。

SYY_LR的博客 234

MPU6050数据融合避坑指南:当欧拉角遇到万向节死锁,我们该如何处理?

本文深入探讨了MPU6050在姿态解算中遇到的欧拉角万向节死锁问题,提供了四元数解决方案及工程实践策略。通过分析死锁现象的本质,介绍四元数的优势与实现方法,并给出必须使用欧拉角时的三种应对方案,帮助开发者有效规避数据跳变和解算失效问题。

weixin_30415113的博客 541

设计模式学习整理之创建型模式

设计模式学习整理之创建型模式 概述 定义----通过抽象实例化的过程,帮助一个系统独立于如何创建、组合和表示它的那些对象。 创建型模式属于对象创建模型。所谓对象创建模型就是说将实例化的工作委托给另一个对象来做。与之相对应的是类创建模型,这是一种通过继承改变被实例化的类。 创建型模式有两个重要的特点: 1)客户不知道创建的具体类是什么(除非看源代码) 2)隐藏了类的实例是如...

yaasshole 124

量子城域网系列(六):从星型到环形,解析QKD网络拓扑的演进与选型

本文深入解析了量子密钥分发网络从星型到环形等主流拓扑结构的演进历程与核心原理。针对量子城域网的实际部署,文章详细对比了星型、总线型和环形拓扑的优缺点,并结合政务云、金融网点等典型应用场景,提供了实战选型指南,帮助读者在物理限制、安全需求与成本效率间找到最佳平衡。

weixin_29197835的博客 111

Python 爬虫实战:简易爬取知乎回答内容

本文详细介绍了使用Python爬取知乎回答内容的实战方法。通过分析知乎异步加载API接口,讲解如何构建带反爬策略的爬虫代码,包括请求头设置、JSON数据解析和内容清洗等核心步骤。文章提供了完整可运行的代码示例,并针对多页爬取、数据保存和反爬升级给出优化建议。同时强调爬虫使用的合规性,帮助新手快速掌握动态网页爬取的核心技巧,实现从静态到动态网页爬虫的进阶。

2503_91057718的博客 2196

spring中factory-method使用

spring中factory-method使用 文章目录spring中factory-method使用一、简介二、factory-method属性创建对象2.1 定义类Stu.java2.2 定义工厂类StuFactory.java2.3 定义spring配置文件springFactoryMethodConfig.xml2.4 使用 一、简介 这里介绍下在spring中,通过factory-met...

panda-star的博客 1万+

多测师肖sir_高级金牌讲师_数据库之存储练习题(8.13.1)

实验 一、 实验要求: 理解存储过程的概念 掌握存储过程的语法格式、使用方法 掌握存 储过程的创建、执行 二、实验前提: – drop table if exists student; – Create table student – (Id varchar(255), #学号 – Name varchar(255), #姓名 – Roomid varchar(255), #班级 – Sex char(1), #性别 – Degree varchar(3) );#成绩; Insert into stud

多测师肖sir的博客 701

Spring中的 bean 标签中的 factory-bean , factory-method

factory-method 和 factory-bean 配合使用,factory-bean必须是IOC容器中存在的一个bean实例 beanA,factory-method 配置 factory-bean 所指定的实例 beanA 的一个工厂方法,也就是Spring会先创建 factory-bean 所指定的这个实例 beanA,然后调用beanA的工厂方法,创建一个新的实例 beanB,然后注册到IOC 容器中。1.factory-bean 这个属性和 接口 FactoryBean 没有关系。

weixin_42286658的博客 1005

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

复习:GoF的23种设计模式之Factory Method模式(创建型)

Factory Method模式(工厂方法) 这个模式我们有一个熟悉的名称,叫工厂模式,将生成实例的框架和实际负责生成实例的类解耦。 概念比较难理解,我大概用自己的语言总结一下,一个工厂,必然就有产品,假如就是一个大闸蟹吧,现在大闸蟹那么贵,以至于每一个大闸蟹都有一个身份验证码,由这个码我们可以查到地址、水质、健康状态等等信息。 现在有个问题,我们怎么生成这个码呢?也就是怎么生成大闸蟹这个类...

yingqi的博客 317

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

factory-bean,factory-method的使用

factory-bean:用于实例化工厂类 factory-method:用于调用工厂类方法。 对于静态方法: public class MyBeanFactory { /** * 创建实例 ***/ public static UserService createService(){ return new UserServiceImpl(); } } UserServicei...

qq_41258326的博客 657

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

对象创建模式—Factory Method

1,意图     定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到了子类。2,适用性     1>当一个类不知道他所必须创建的对象的类的时候。     2>当一个类希望由它的子类来指定它所创建的对象的时候     3>当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候

v1v1wang的专栏 553

java design pattern (1. Factory Method pattern)

、设计模式Factory Method 此模式属于创建型设计模式,它只定义创建对象的接口,而由它的子类负责创建具体的对象,利用子类实例化不同的对象。图一是Factory Method 模式结构的类图(Class Diagram),其中: Product 定义了由factory method所创建对象的统一接口。 ConcreteProduct 具体的类,实现Product接口。

zs12344444的专栏 833

模式:FACTORY

目录 模式:FACTORY 选择FACTORY及其应用位置 有些情况下只需使用构造函数 接口的设计 固定规则的相关逻辑应放置在哪里 ENTITY FACTORY与VALUE OBJECT FACTORY 重建已存储的对象 模式:FACTORY 当创建一个对象或创建整个AGGREGATE时,如果创建工作很复杂,或者暴露了过多的内部结构,则可以使用FACTORY进行封装。 对...

Star_Inori的博客 484

C++ · 设计模式 (对象创建= Factory Method<工厂模式>)

工厂方法模式是一种创建型设计模式,通过定义对象创建接口但将具体实现延迟到子类,实现对象创建与使用的解耦。该模式适用于需要灵活创建多种类型对象的场景(如跨平台UI组件、游戏角色生成),核心优势在于符合开闭原则、降低耦合度。在C++中通常结合智能指针使用,通过抽象产品和创建者类实现多态创建。典型结构包括抽象产品、具体产品、创建者和具体创建者四个角色,客户端代码仅依赖抽象接口。不适用于简单对象创建或性能关键路径的场景,此时直接实例化或使用其他模式更合适。

qq_35223555的博客 1009
上一篇: builder -对象创建模型
下一篇: prototype -对象创建模型
kingSolider
博客等级 码龄10年 0粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值