Java设计模式-创建型设计模式

创建型设计模式(5种,核心:管控对象创建,隔离new细节)

目的:把对象实例化逻辑和业务使用代码分离,降低耦合、灵活控制对象创建。

  1. 单例 Singleton

保证一个类全局只有一个实例,提供全局访问点。

适用:配置管理器、线程池、日志工具。

两种:饿汉(类加载初始化)、懒汉(用时创建)。

  1. 工厂方法 Factory Method

一个产品对应一个工厂,父类定义创建接口,子类实现实例化。

适用:产品种类会持续扩展,新增产品只加工厂类,不改原有代码。

  1. 抽象工厂 Abstract Factory

一个工厂生产一族相关产品(多系列配套对象)。

例:安卓/ios两套UI控件(按钮+弹窗),一个工厂产出整套控件。

  1. 建造者 Builder

分步构造复杂对象,拆分:建造者+指挥者+产品。

适用:对象属性多、构造步骤固定(如复杂报文、电脑组装)。

  1. 原型 Prototype

克隆已有对象创建新实例,不用new。

适用:创建对象成本高(大数据初始化、资源加载重),深浅拷贝是关键点。

速记区分

  • 单例:只能造一个

  • 工厂方法:一类产品一个厂

  • 抽象工厂:一套产品一个厂

  • 建造者:分步拼复杂对象

  • 原型:复制老对象出新对象

更多分析请转至 码读空间-面试应用题库 小程序

相关推荐
我命由我123455 分钟前
Android 设备的日志缓冲区被写满,logcat: Unexpected EOF!
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
xcl092510 分钟前
分销返利商城系统开发实战:返利算法与架构设计指南
java·spring boot
171320330计算机毕设编程14 分钟前
2027计算机毕设五大方向对比&选题推荐
java·ide·python·算法·django·php·推荐算法
171320330计算机毕设编程15 分钟前
基于SpringBoot的在线拍卖系统
android·java·spring boot·小程序·课程设计
未秃头的程序猿20 分钟前
一次秒杀把服务打挂了,我用Sentinel规则配置化救了回来
java·后端·spring cloud
Zane199423 分钟前
明明没删字段,反序列化却报错:都是隐式 serialVersionUID 惹的祸
java·后端
0xBADCODE25 分钟前
动态DEX加载+反射+DES硬编码密钥:安卓三层逆向实战
android·java·python·安全·网络安全·逆向·ctf
被摘下的星星29 分钟前
Java 中 .length、.length() 以及 .size() 的区分
java·开发语言
代码不停34 分钟前
子数组问题
java·算法
信誓旦旦的程序猿1 小时前
【零依赖量化数据实战 #25】北交所技术指标与基本面
java·人工智能·python·股票数据api·股票数据·股票数据api接口·股票api数据接口