首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
趣学设计模式
我爱娃哈哈
创建于2024-07-19
订阅专栏
设计模式:程序员的基本功,你离及格还差多少?
等 7 人订阅
共33篇文章
创建于2024-07-19
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
状态模式:如何通过有限状态机监控功能的“状态变化”?
状态模式的应用场景非常广泛,比如,线上购物订单、手机支付、音乐播放器、游戏、工作流引擎等场景。状态模式设计的初衷是应对同一个对象里不同状态变化时的不同行为的变化。那么,当我们遇见类似的场景时,该如何来
策略模式:如何解决不同活动策略的营销推荐场景?
策略模式在实际的开发中很常用,最常见的应用场景是利用它来替换过多的 if-else 嵌套的逻辑判断。除此之外,它还能结合工厂模式给客户端提供非常灵活的使用体验。下面,我们一起来看看吧! 一、模式原理分
模板方法模式:如何实现同一模板框架下的算法扩展?
模板方法模式的原理和代码实现都比较简单,在软件开发中也被广泛应用,但是因为使用继承机制,副作用往往盖过了主要作用,所以在使用时尤其要小心谨慎。 一、模式原理分析 模板方法模式原始定义是:在操作中定义算
访问者模式:如何实现对象级别的矩阵结构?
今天我们先来看一个原理看似很简单,但是理解起来有一定难度,使用场景相对较少的行为型模式:访问者模式。 一、模式原理分析 访问者模式的原始定义是:允许在运行时将一个或多个操作应用于一组对象,将操作与对象
代理模式:如何控制和管理对象的访问?
代理模式的原理非常简单,它和装饰模式很类似,都是在不改变同一个接口功能的前提下,对原有接口功能做扩展。但是代理模式的应用却比装饰模式更为广泛,因为代理模式并不执着于链式结构,而是采用更为灵活的单一结构
享元模式:如何通过共享对象减少内存加载消耗?
享元模式的原理和实现都很简单,但是应用场景却相对狭窄,它和现在我们所熟知的缓存模式、池化模式有所联系,却又有不同。看完这篇文章后,相信你会找到这个不同之处。 一、模式原理分析 享元模式的原始定义是:摒
门面模式:如何实现 API 网关的高可用性?
你是不是经常把门面模式和代理模式搞混淆?比如,业务 API 网关和 Nginx 网关是不是差不多?实际上这两种模式的本质原理是不同的。相信通过今天的文章,会帮助你找到一个更准确的答案。 一、模式原理分
装饰模式:如何在基础组件上扩展新功能?
在前面几篇中,我们已经了解了结构型模式中的适配器模式、桥接模式和组合模式。本篇我们要介绍的装饰模式看上去和适配器模式、桥接模式很相似,都是使用组合方式来扩展原有类的,但其实本质上却相差甚远呢。 简单来
组合模式:如何用树形结构处理对象之间的复杂关系?
如果单纯从字面上来看,我们很容易将“组合模式”和“组合关系”搞混。组合模式最初只是用于解决树形结构的场景,更多的是处理对象组织结构之间的问题。而组合关系则是通过将不同对象封装起来完成一个统一功能。 虽
桥接模式:如何实现抽象协议与不同实现的绑定?
桥接模式的原理非常简单,但是使用起来会有一定的难度,所以相对于适配器模式来说,在理解桥接模式时,重点要能跳出局部,多从整体结构上去思考。 一、模式原理分析 桥接模式的定义是:将抽象部分与它的实现部分分
适配器模式:如何处理不同 API 接口的兼容性?
如果说创建型设计模式的关注重点在于一个对象内部结构的话(常常是接口与实现的组合),那么结构性设计模式的关注重点就在于多个对象之间的组合方式。 结构型设计模式一共包括七种:适配器模式、桥接模式、组合模式
原型模式:什么场景下需要用到对象拷贝?
原型模式最早出现于 1963 年的一个叫 Sketchpad 的系统中,说起 Sketchpad 你可能并不熟悉,但是说起 CAD(计算机辅助设计),现在在工程设计领域几乎无人不知,其实 Sketch
工厂方法模式:如何解决生成对象时的不确定性?
今天我们接着来看另外一个工厂模式:工厂方法模式**(Factory Method Pattern)**。 工厂方法模式就是我们俗称的工厂模式,和抽象工厂模式很类似,但工厂方法模式因为只围绕着一类接口来
抽象工厂模式:如何统一不同代码风格下的代码级别?
在 GoF 的《设计模式》一书中,工厂模式被分为了三种:简单工厂、工厂方法和抽象工厂。(不过,在书中作者将简单工厂模式看作是工厂方法模式的一种特例。)在实际工作中,用得比较多的就是工厂方法模式和抽象工
建造者模式:如何创建不同形式的复杂对象?
事实上,建造者模式的代码实现非常简单,原理掌握起来也不难,而难点就在于什么时候采用它。比如,经常会遇到的以下两个问题: 为什么直接使用构造函数或者使用 set 方法来创建对象不方便? 为什么一定需要建
单例模式:如何有效进行程序初始化?
一、设计模式的底层逻辑 关于设计模式,大家可能会说: 学习了很多设计模式的课程和文章,依然不会用设计模式; 设计模式适用场景没有设计原则多; 设计模式入门简单,精通很难; 设计模式太复杂看不懂; 面试
如何做好 API 接口设计?
无论是架构设计还是编码实现,现在都越来越离不开接口设计,接口可以说是新时代的“集装箱”,是得到了几乎所有人一致共识的通用标准。 GoF 在很多年前便建议大家应该针对接口编程,原因其实就是为了降低编程变
如何将复杂问题拆分成小问题?
关注点分离原则是一个帮助我们将复杂问题拆分成小问题的好方法。 什么是关注点?简单来说,在计算机科学中,关注点是能对程序代码产生影响的一组特定信息。比如,在面向对象编程中将关注点描述为对象,在面向函数编
如何提升编程中的沟通效率?
在软件开发中,你是不是经常因为沟通效率低下而烦恼? 所接手的维护项目代码质量低,频繁出问题,不得不一次又一次地找之前的人沟通; 团队中模块分散,各自编程风格不同,使用对方服务时需要反复沟通; 跨团队合
如何减少代码间的相互影响?
在实际的研发工作中,你是不是遇见过以下场景? 一个平台系统,需要接入各种各样的业务系统,而这些业务系统都有自己的账号体系,平台需要兼容这些系统的账号体系,于是代码中出现了大量依赖于各种账号体系的代码。
下一页