备忘录模式 (Memento Pattern) 深度解析
📝 备忘录模式 (Memento Pattern) 深度解析 🚀 1. 模式意图与动机 (Intention & Motivation) 意图 备忘录模式 (Memento Pattern): 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。 动机 在软件应用中,我们经常需要提供“撤销 (Und...
📝 备忘录模式 (Memento Pattern) 深度解析 🚀 1. 模式意图与动机 (Intention & Motivation) 意图 备忘录模式 (Memento Pattern): 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。 动机 在软件应用中,我们经常需要提供“撤销 (Und...
🌉 桥接模式 (Bridge Pattern) 深度解析 1. 模式动机与定义 1.1. 模式动机:解决多维度变化的类爆炸问题 设想一个系统存在两个独立的变化维度: 形状 (Abstraction/抽象化):如圆形、矩形。 颜色 (Implementation/实现化):如红色、绿色、蓝色。 如果采用传统的多继承(方案一:为每种形状提供一套各种颜色的版本),则类的数量会...
🔩 抽象工厂模式 (Abstract Factory Pattern) 深度解析 1. 模式动机与定义 1.1. 模式动机:面对多个产品等级结构 在工厂方法模式中,一个具体工厂只负责生产一个产品等级结构中的一种具体产品。但有时候,一个工厂需要提供多个产品对象,这些产品位于不同的产品等级结构中,但它们之间是相关或相互依赖的。 为了更清晰地理解抽象工厂模式,我们先回顾两个核心概念: ...
这种本机网络 IO 方法,性能可以翻倍! 原创张彦飞allen开发内功修炼2021-12-21 09:08 收录于话题#开发内功修炼之网络篇30个 大家好,我是飞哥! 很多读者在看完《127.0.0.1 之本机网络通信过程知多少 ?》这一篇后,让我讲讲 Unix Domain Socket。好了,今天就安排! 在本机网络 IO 中,我们讲到过基于普通 socket 的本机网络通信过...
轻松理解 Docker 网络虚拟化基础之 veth 设备! 原创张彦飞allen开发内功修炼2021-09-16 08:28 收录于话题#开发内功修炼之网络篇30个 大家好,我是飞哥! 正如我在朋友圈里所说的,最近我又对网络虚拟化技术产生了浓厚的兴趣。迫切想搞明白在 Docker 等虚拟技术下,网络底层是如何运行的。 不得不说,网络虚拟化技术是我给自己抛的又一个大坑。虽然我自认为把...
没问题,我完全理解了。之前的处理确实在整合时丢失了部分深度,且没有严格遵循“一篇一篇输出”的节奏。 现在,我将严格按照您的要求:保持原文深度、优化排版结构、增加 Java/Python 代码示例,为您重新输出享元模式 (Flyweight Pattern) 的完整深度解析笔记。 🚀 享元模式 (Flyweight Pattern) 深度解析 1. 模式动机与背景 面向对象技术可以...
线程通信-等待通知机制 非等待的线程间通信 public void run() { try { for (int i = 0; i < 10; i++) { list.add(); System.out.println(“添加了” + (i + 1) + “个元素”); Thread.sleep(1000); } } catch (InterruptedException e) {...
🧑🤝🧑 中介者模式 (Mediator Pattern) 深度解析 1. 模式动机:解决“蜘蛛网”式的复杂交互 在用户直接聊天的设计方案中,用户对象之间存在很强的关联性,将导致系统出现“蜘蛛网”式的复杂耦合结构。 系统结构复杂: 对象间存在大量的相互关联和直接调用。若有一个对象发生变化,需要跟踪所有关联对象进行处理。 对象可重用性差: 由于强关联,一个对象很难被另一个系统...
🧬 原型模式 (Prototype Pattern) 深度解析 1. 模式动机与定义 1.1. 模式动机:高性能创建重复对象 当直接创建对象的代价比较大时(例如,需要进行高代价的数据库操作、繁琐的数据准备或权限校验),频繁使用 new 关键字会影响性能。 原型模式通过拷贝一个现有对象来生成新对象,避免了传统的对象创建过程,从而实现了性能优化和资源节约。 1.2. 模式定义 原型模...
🏭 工厂方法模式 (Factory Method Pattern) 深度解析 1. 模式动机与定义 1.1. 模式动机:符合“开闭原则”的工厂 在简单工厂模式中,一个工厂类负责所有产品的创建。当需要引入新产品时,必须修改工厂类的创建逻辑(例如添加新的 if-else 分支),这违背了“开闭原则” (对扩展开放,对修改关闭)。 工厂方法模式的动机在于:不再设计一个单一的工厂类来负责所有...