【架构师角度】详细解析 OpenStack4j 中 PropagateOnStatus 的异常处理机制
Openstack4j 提供了一套可插拔的 HttpExecutor 框架,支持 Apache HttpClient、Resteasy等,根据分析默认使用 Apache Httpclient。目前尚不清楚为什么要提供这个HTTP框架统一层,看起来有些多余。但是在吸收这个库的时候发现,它有着目前为止我... ...
2.面向对象设计原则
2.面向对象设计原则 对于面向对象软件系统的设计而言,在支持可维护性的同时,提高系统的可复用性是一个至关重要的问题,如何同时提高一个软件系统的可维护性和可复用性是面向对象设计需要解决的核心问题之一。在面向对象设计中,可维护性的复用是以设计原则为基础的。每一个原则都蕴含一些面向对象设计的思想,可以 ...
“静态回调+上下文指针”模式实现回调机制
0 摘要 以常用的某品牌相机的驱动为例,分析回调机制的实现。 1 SetCallback(即,注册回调)的实现 1.1 函数签名 int MV_CC_RegisterImageCallBackEx( void* handle, // 相机设备句柄 void (__stdcall *pCallBack ...
JWT令牌
该笔记介绍SpringBoot中JWT令牌的使用,内容涵盖Maven依赖坐标配置、JWT生成方法(设置算法、自定义声明、签名及过期时间)、JWT解析验证(验证签名、过期时间等)以及配置映射(YAML配置与JwtProperties类实现配置管理),并提供了完整的Java代码实现示例。 ...
《Head First设计模式》读书笔记 —— 单例模式
《Head First设计模式》读书笔记 相关代码:Vks-Feng/HeadFirstDesignPatternNotes: Head First设计模式读书笔记及相关代码 用来创建独一无二的,只能有一个实例的对象的入场券 为什么需要单件模式 有些对象只能有一个实例 线程池、缓存、对话框、设备的驱 ...
C语言一点五编程实战:纯 C 的模块化×继承×多态框架
本文探讨在C语言中模拟面向对象编程(OOP)的"一点五编程"技术,通过函数指针、结构体嵌套和二级指针强制转换实现类、接口与多态。开发流程分声明(接口/类结构体、类型转换函数)、实现(方法绑定、初始化)和使用三阶段,强调方法集指针必须位于类结构体首地址以实现动态绑定。该方法将硬件驱动与业务逻辑解耦,结... ...
《Head First设计模式》读书笔记 —— 工厂
《Head First设计模式》读书笔记 相关代码:Vks-Feng/HeadFirstDesignPatternNotes: Head First设计模式读书笔记及相关代码 除了new操作符外,还有更多制造对象的方法 “实例化”这个活动不应该总是公开地进行 初始化经常造成“耦合”问题 实例化的问题 ...
《Head First设计模式》读书笔记 —— 装饰者模式
《Head First设计模式》读书笔记 相关代码:Vks-Feng/HeadFirstDesignPatternNotes: Head First设计模式读书笔记及相关代码 给爱用继承的人一个全新的设计眼界 本节用例 Starbuzz咖啡因迅速扩展,准备更新订单系统,以合乎其饮料供应需求 原有类设 ...
开窍了!如何为缓存工具类(CacheUtil中的static方法)定义interface(上)
职责相同的2个工具类里都是static方法,基于OOP的程序设计思想,我如何为这2个工具类抽取共同的interface? ...
《Head First设计模式》读书笔记 —— 观察者模式
《Head First设计模式》读书笔记 相关代码:Vks-Feng/HeadFirstDesignPatternNotes: Head First设计模式读书笔记及相关代码 让你的对象知悉现状,不会错过对象感兴趣的事 对象甚至在运行时可决定是否要继续被通知 JDK中使用最多的模式之一 本节例子 系 ...
学习设计模式有这两就够了:手册+实战项目
历经一年时间,设计模式手册和练手项目已全部编写完成 秘籍1设计模式手册:《掌握设计模式:23种经典模式实践、选择、价值与思想》 秘籍2练手项目:设计模式实战项目--markdown文本编辑器软件开发(已开源) 秘籍1 设计模式手册 该手册将为你回答: 什么是设计模式? 怎么学习设计模式 为什么学 ...
学习设计模式找不到练手的实战项目?项目已开源
手写解析器、渲染器、主题样式、自定义弹窗和精细的撤销/恢复机制等。 整体总结 YtyMark-java 项目,从用户输入到用户查看到实时渲染结果的全过程 监听文本区域内容是否发生变化 解析和渲染:“原始文本的块裁剪”→“块级元素解析” → “行内元素解析” → “渲染” 四大阶段 将渲染结果重新 ...
开源项目YtyMark文本编辑器--UI界面相关功能(关于设计模式的实战运用)
开源项目地址 GitHub 开源地址(YtyMark-java) 欢迎提交 PR、Issue、Star ⭐️! 1. 简述 YtyMark-java项目分为两大模块: UI界面(ytyedit-mark) markdown文本解析和渲染(ytymark) 本文主要内容为UI界面相关功能 ...
markdown文本编辑器--核心功能(解析和渲染)
开源项目地址 GitHub 开源地址(YtyMark-java) 欢迎提交 PR、Issue、Star ⭐️! 1. 简述 YtyMark-java项目分为两大模块: UI界面(ytyedit-mark) markdown文本解析和渲染(ytymark) 本文主要内容为核心模块--mark ...
分享个人设计模式笔记文档:《掌握设计模式:23种经典模式实践、选择、价值与思想》
本文主要分享我的设计模式笔记PDF文档:《掌握设计模式:23种经典模式实践、选择、价值与思想》 这只是设计模式的秘籍1:《掌握设计模式:23种经典模式实践、选择、价值与思想》 后续还会分享练手项目秘籍2:设计模式实战项目--markdown文本编辑器软件开发(开放所有源代码) 前言 为什么要写这份资 ...
为什么学习设计模式?
1. 学习设计模式的意义:让代码更优雅,让开发更从容 设计模式的学习常常被贴上“枯燥”“抽象”的标签,但它更像一本软件开发的“烹饪食谱”——不是要求你死记硬背,而是教会你如何用更巧妙的方式组合代码的“食材”,最终做出一道既美味(功能完善)又美观(易于维护)的“佳肴”。以下是它的核心价值与意义: 1. ...
学了设计模式,却不知道怎么选择?
本人主要讲述设计模式怎么去选择,这仅仅是不知从何下手提供一个抓手的东西,并不是银弹。常想、多用,积累经验后,方可灵活运用,做到无模式胜有模式,才可能会在复杂场景中,设计出高质量的系统。 设计模式的选择是一个从问题到解决方案的递进过程。通过明确问题类型、分析目标特性、遵循设计原则以及结合场景需求,可以 ...
[设计模式]行为型-备忘录模式
简介 备忘录模式(Memento Pattern)是一种行为型设计模式,它允许生成对象状态的快照并在以后将其还原。备忘录模式不会影响它所处理对象的内部结构,也不会影响快照中存储的数据。简单来说,它就像游戏中的“保存”和“加载”功能。 组成角色: Originator(发起人): 主要用于生成自身状态 ...
掌握设计模式--解释器模式
解释器模式(Interpreter Pattern) 解释器模式(Interpreter Pattern)是一种行为型设计模式,用于定义一种语言的文法表示,并提供一个解释器来解释该语言中的句子。这种模式通常用于开发需要解析、解释和执行特定语言或表达式的应用程序。 主要目的是为特定类型的问题定义一种语 ...


