排序
2023 跟我一起学设计模式: 代理模式
代理模式 亦称: Proxy 代理模式是一种结构型设计模式, 让你能够提供对象的替代品或其占位符。 代理控制着对于原对象的访问, 并允许在将请求提交给对象前后进行一些处理。 问题 为什么要控制...
Go 代理模式讲解和代码示例
Go 代理模式讲解和代码示例 代理是一种结构型设计模式, 让你能提供真实服务对象的替代品给客户端使用。 代理接收客户端的请求并进行一些处理 (访问控制和缓存等), 然后再将请求传递给服务对...
客户端日志&埋点&上报的柔性生产线
引子 有没有一个日志库除了可以打印字符串,还能打印列表、Map、异常,并自动添加 tag? 有!比如 Timber,Logger 有没有一个日志库可以动态地追加 N 种日志处理方式?比如输出到 logcat 的同时...
Flutter开发实战:命令模式(Command Pattern)
命令模式(Command Pattern)是一种设计模式,它在面向对象编程中封装了方法调用或特定的操作。这种模式把请求封装为对象,从而让你可以使用不同的请求、队列,或者请求的参数化来参数化其他对...
Go设计模式实战–用状态模式实现系统工作流和状态机
大家好,这里是每周都在陪你进步的网管~!本节我们将讲解状态模式这一设计模式,并通过golang示例进行实战演示。 状态模式(State Pattern)也叫作状态机模式(State Machine Pattern)状态模...
Glide 用到的设计模式,你知道多少?
前言 之前有写Glide的流程和一些重要类作用的相关文章,不清楚Glide整体流程和重要类的作用的建议先看之前的文章。 Glide 作为一个像Android SDK 一样的第三方图片框架,久经各大项目的考验,re...
2B or not 2B: 前端大泥球
今天给大家带来的是 2B 领域的一个架构难题,我们最终也没有找到一个较好「解决」方案, 或者说它本来就是一个伪命题。 让我慢慢跟你道来… 软件的划分模式 首先从软件系统的划分模式讲起。软件...
通过okhttp拦截器demo加深对责任链模式的理解
责任链模式的思想 将事件或者数据传递到第一个处理者身上,每一个处理者都持有下一个处理者的引用,从第一个处理者开始决定: 拦截数据自己处理,不传递给后面的处理者 不拦截数据,加工数据后...
Flutter开发实战:迭代器模式(Iterator Pattern)
迭代器模式(Iterator Pattern)是一种设计模式,它提供了一种方法来顺序访问一个聚合对象的元素,而又不暴露该对象的内部表示。迭代器模式可以用于实现专门的循环结构,使得代码更加清晰,容易...
设计模式漫谈
开门见山一句话,我认为设计模式的核心就是“封装变化点”,用古早软件工程的话语体系说就是“低耦合,高内聚”,用糙一点的话说就是既不要重复代码,又要好扩展。 比如: 工厂模式的核心是解除...
2023跟我一起雪设计模式: 原型模式
原型模式 原型模式是一种创建型设计模式, 使你能够复制已有对象, 而又无需使代码依赖它们所属的类。 问题 如果你有一个对象, 并希望生成与其完全相同的一个复制品, 你该如何实现呢? 首先,...
Go 原型模式讲解和代码示例
Go 原型模式讲解和代码示例 原型是一种创建型设计模式, 使你能够复制对象, 甚至是复杂对象, 而又无需使代码依赖它们所属的类。 所有的原型类都必须有一个通用的接口, 使得即使在对象所属的...
"亡羊补牢",聊聊适配器模式
设计模式-适配者模式 “事已至此,亡羊补牢” 何为适配器? 提高适配器,不知道你会想到什么? 也许我们会想到电源适配器,我们的笔记本电源线线上那个黑黑的小盒子就是电源适配器 电源适配器是...
Flutter开发实战:妙用策略模式(Strategy Pattern)
策略模式(Strategy Pattern)是一种行为设计模式,能在运行时根据对象的行为进行变化。在策略模式中,行为被封装到具有共同接口的独立类中,可以从一个对象中独立出一些行为的具体实现,进而在...
马斯克的Twitter迎来严重危机,我国的超级App模式是否能拯救?
Meta公司近期推出的Threads 被网友戏称为“Twitter杀手”,该应用上线仅一天,用户就突破了3000 万人。外界普遍认为,这是推特上线17年来遭遇的最严峻危机。面对扎克伯格来势汹汹的挑战马斯克会...
拒绝复杂 if-else,前端策略模式实践
设计模式的重要性 为什么要学习和使用设计模式,我觉得原因主要有两点 解除耦合:设计模式的目的就是把 “不变的” 和 “可变的” 分离开,将 “不变的” 封装为统一对象,“可变的” 在具体实...
TypeScript 接口合并, 你不知道的妙用
初识 声明合并(Declaration Merging) 是 Typescript 的一个高级特性,顾名思义,声明合并就是将相同名称的一个或多个声明合并为单个定义。 例如: interface Box { height: number; width: numb...
React Design Patterns
React Design Patterns 在使用 React 开发应用程序时,我确信您遇到过不同的用例,而使用相同的旧方法很难解决这些用例。 每个用例都需要不同的模式来以最优化的方式解决问题,并使我们的代码更...
系统架构实战:优化你的缓存失效策略,提升性能
缓存失效是从缓存中移除或更新过时数据的过程,以确保仅存储最新、最准确的信息。缓存通过临时在内存中存储频繁访问的数据,提高了应用程序的性能,减少了从较慢的存储系统中获取数据的需求。然...
【进阶玩法】策略+责任链+组合实现合同签章
前置内容 掌握策略模式 掌握责任链模式 掌握类继承、接口的实现 掌握参数的传递与设置 GitHub地址 ps:【文章由来】 公司项目中所用的合同签章处理流程,本人基于责任链上使用策略模式进行优化...