别再到处 new 对象了,试试 3 大工厂模式,真香!!

简介: 你还在到处 new 对象吗?单身狗:我没对象,new 怎么了?

new 对象本身是没问题的,但也不能全部 new 关键字走天下,其实有更好的方式,合适的时候可以试试工厂模式,代码会更优雅。


什么是工厂模式?

顾名思义,工厂模式中的 "工厂" 指的是创建对象的工厂,它提供了一种创建对象的最佳方式,也就是工厂模式。


工厂模式的好处是这些对象不需要暴露自身的创建过程,统一由工厂模式进行创建和提供,隐藏了创建细节,避免了错误的创建对象的形式,也减少了重复创建冗余代码。


一般情况下,工厂模式可以细分为三类:


简单工厂模式


工厂方法模式


抽象工厂模式


不过在设计模式权威书籍《设计模式:可复用面向对象软件的基础》一书中,简单工厂模式只是工厂方法模式的一个特例而已。


所以,从权威的角度说,工厂模式只分为:工厂模式 和 抽象工厂模式 两大类。


但不管白猫黑猫,能抓老鼠的就是好猫,设计模式亦是如此,不管怎么分类,这些模式都是程序员们历年过往经验的浓缩,都是值得学习和借鉴的。


所以,本文栈长从细分的角度带大家来实战下这三个工厂设计模式。


1、简单工厂

比如 XX 公司是做支付的,公司有几大类的客户:电商商户、银行客户、代理商……


创建这些客户的时候我们可以用简单工厂模式来实现看看。


新建客户基类:


可以把所有客户公共的信息放到一个客户基类中,比如:客户名、客户类型等,所有的客户继承这个抽象基类。


————————————————

版权声明:本文为CSDN博主「Java技术栈」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/youanyyou/article/details/118947738

目录
相关文章
|
9月前
|
云安全 人工智能 安全
阿里云欧阳欣:AI时代下的安全新范式
阿里云欧阳欣:AI时代下的安全新范式
|
监控 安全 测试技术
我们为什么要API管理系统呢?
API 管理系统通过接口标准化与复用、简化开发流程、版本管理、监控与预警、访问控制、数据加密、安全审计、集中管理与共享、协作开发、快速对接外部系统和数据驱动的决策等多方面优势,显著提高开发效率、增强系统可维护性、提升系统安全性、促进团队协作与沟通,并支持业务创新与扩展。
|
并行计算 Linux 开发工具
物体检测框架YoloDotNet初体验
【11月更文挑战第3天】YoloDotNet 是一个基于 .Net 平台的物体检测框架,支持多种视觉任务,包括物体检测、分类、OBB 检测、分割和姿态估计。安装过程较为复杂,需要配置 CUDA 和 CUDNN 支持 GPU 加速。代码简洁易用,检测速度快且准确,适用于实时应用。该框架跨平台、开源免费,适合熟悉 .Net 的开发者使用。
677 4
|
12月前
|
Ubuntu 网络协议 Linux
快速部署WSL(Windows Subsystem for Linux)
WSL提供了一种轻量级的方法,使开发者能够在Windows上无缝运行Linux环境。通过本文介绍的步骤,可以快速安装、配置和使用WSL,以满足开发和测试的需求。
2177 8
|
中间件
小满nestjs(第十二章 nestjs 中间件)
中间件是在路由处理程序 之前 调用的函数。 中间件函数可以访问请求和响应对象
362 63
小满nestjs(第十二章 nestjs 中间件)
|
PyTorch 算法框架/工具 C++
windows上编译安装pytorch的c++扩展
windows上编译安装pytorch的c++扩展
322 0
|
C语言
【C语言刷题每日一题#牛客网BC69】——空心正方形图案
【C语言刷题每日一题#牛客网BC69】——空心正方形图案
|
存储
获取图片上传【file】
获取图片上传【file】
138 1
|
C语言
C语言条件控制循环的深入解析
C语言条件控制循环的深入解析
249 0
|
SQL 关系型数据库 MySQL
MyBatis-plus配置自定义SQL(执行用户传入SQL)
MyBatis-plus配置自定义SQL(执行用户传入SQL)
997 0