设计模式
文章平均质量分 72
tlqwanttolearnit
这个作者很懒,什么都没留下…
展开
-
备忘录模式
备忘录模式(Memento Pattern),也叫快照(Snapshot)模式,在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态;这样以后就可将该对象恢复到原先保存的状态。主要是用来防丢失、撤销、恢复等备忘录模式跟原型模式很像,不过在原型模式中保存对象的一切,而备忘录模式中只保存恢复时需要的数据。原创 2023-03-17 14:37:43 · 403 阅读 · 1 评论 -
状态模式(State Pattern)
状态模式(State Pattern),通过将事件触发的状态转移和动作执行,拆分到不同的状态类中,来避免分支判断逻辑。在实际的软件开发中,状态模式并不是很常用,但是在能够用到的场景里,它可以发挥很大的作用。原创 2022-12-26 18:09:43 · 177 阅读 · 0 评论 -
职责链模式
职责链模式(Chain Of Responsibility Design Pattern),又可以称为责任链模式。主要是为了避免请求和接收耦合,为请求创建了一个接收对象的链,将请求的发送和接收进行了解耦。让多个接收对象都有机会处理这个请求。将这些接收对象串成一条链,并沿着这条链传递这个请求,直到链上的某个接收对象能够处理它为止。原创 2022-12-02 17:28:43 · 113 阅读 · 0 评论 -
策略模式详解
策略模式(Strategy Design Pattern),定义一堆算法类,并将每个算法分别封装起来,让它们可以互相替换,被封装起来的算法具有独立性外部不可改变其特性。策略模式可以使算法的变化独立于使用它们的客户端(这里的客户端代指使用算法的代码)。原创 2022-12-01 18:00:25 · 3972 阅读 · 0 评论 -
模版模式详解
模板模式有两大作用:复用和扩展。其中,复用指的是,所有的子类可以复用父类中提供的模板方法的代码。扩展指的是,框架通过模板模式提供功能扩展点,让框架用户可以在不修改框架源码的情况下,基于扩展点定制化框架的功能。原创 2022-12-01 11:12:13 · 314 阅读 · 0 评论 -
观察者设计模式
观察者模式在现实中的应用场景是非常广泛的,并且有非常多成熟的应用。可以同步阻塞实现,也可以异步非阻塞实现,可以是进程内,也可以是跨进程方式,不同的实现方式,具体的实现也不一样,但是底层的设计思想是一致的。所以这也告诉我们,掌握基本的基础知识和指导思想,怎么扩展,都是在这些基础上添砖加瓦,万变不离其宗,学好基础很重要。原创 2022-11-30 20:36:54 · 96 阅读 · 0 评论 -
享元模式详解
享元模式的实现非常简单,主要是通过工厂模式,在工厂类中,通过一个 map 或者 list 来缓存已经创建过的享元对象,来达到复用,减少内存消耗的目的。应用单例模式是为了保证对象全局唯一。应用享元模式是为了实现对象复用,节省内存。缓存是为了提高访问效率,而非复用。池化技术中的“复用”理解为“重复使用”,主要是为了节省时间。根据不同的应用场景,使用不同的共享方式。原创 2022-11-29 11:49:43 · 657 阅读 · 0 评论 -
设计模式 - 组合模式
组合模式的设计思路,与其说是一种设计模式,倒不如说是对业务场景的一种数据结构和算法的抽象。其中,数据可以表示成树这种数据结构,业务需求可以通过在树上的递归遍历算法来实现。使用组合模式的前提在于,你的业务场景必须能够表示成树形结构。所以,组合模式的应用场景也比较局限,它并不是一种很常用的设计模式,但是对于适用的场景,能发挥非常大的作用。原创 2022-11-28 11:33:38 · 69 阅读 · 0 评论 -
门面模式详解
门面模式是专门做接口整合的,解决的是多接口调用带来的问题,提高接口的易用性。原创 2022-11-25 12:06:51 · 259 阅读 · 0 评论 -
适配器模式
适配器模式(Adapter Design Pattern),顾名思义,这个模式就是用来做适配的;它可以作为两个不兼容的接口之间的桥梁,将原本不兼容的接口转换为兼容的接口。这个模式可以让原本不能一起工作的类可以一起工作。原创 2022-11-22 11:45:36 · 376 阅读 · 0 评论 -
装饰器设计模式
装饰器模式(Decorator Design Pattern)是指在不改变原有对象的基础上,附加新的功能到原对象上,使之具有增强的功能,装饰器模式的核心是功能的增强和扩展。这种模式创建了一个装饰类,用来包装原有的类,并提供了额外的功能。原创 2022-11-17 16:33:10 · 181 阅读 · 0 评论 -
桥接设计模式
桥接模式通过运用组合优于继承的原则,将一个功能类识别并拆分成多个相互独立的维度进行独立扩展,很好地实现了高扩展性和灵活性的特点。但是同时,也使整体结构也变得抽象和复杂,增加了系统的理解与设计难度。对于能够比较明显拆分成独立维度的类,桥接模式是一种非常好用并且常见的设计模式与思想。原创 2022-09-30 19:56:00 · 177 阅读 · 0 评论 -
代理设计模式
代理模式可以在不改动原始类的前提上,附加一些非业务性的功能,比如:监控、统计、鉴权、限流、事务、日志等等,可以将这些功能与业务逻辑解耦,让业务只关注业务,是非常好用的一种结构型设计模式。原创 2022-09-25 15:13:32 · 409 阅读 · 0 评论 -
设计模式 - 原型模式
原型模式(Prototype Pattern)主要用于复制、克隆;如果对象的创建成本比较大,而同一个类的不同对象之间差别不大(大部分字段都相同),在这种情况下,我们可以利用对已有对象(原型、公用部分)进行复制(或者叫拷贝)的方式来创建新对象,以达到节省创建时间和空间的目的。...原创 2022-07-04 23:28:12 · 56 阅读 · 0 评论 -
建造者模式
建造者模式(Builder Pattern)又叫生成器模式,有点类似工厂模式,两者都是用专门的类来实现对象的创建。主要区别是建造者模式着重一步步构造一个复杂对象,而抽象工厂模式着重于多个系列的产品对象。有一句话对建造者模式总结的很好:这正是 建造者设计模式的用武之地。最常用的一个场景就是操作数据库的 ORM。回想一下,ORM 中一个很重要的概念:延迟加载,其实就是建造者模式最常见的应用。下面通过一个生产手机的例子来了解一下建造者模式的各个构成部分。要生产一台手机,基本的组件有《屏幕、电池、cpu》,我们的手原创 2022-06-22 23:36:04 · 77 阅读 · 0 评论 -
工厂模式实现
工厂模式(Factory Pattern) 是用来创建对象的一个工厂,不必我们亲自创建对象,我们无需去理解如何创建对象,只需要向工厂提出要求,返回相应的对象,提高代码的可扩展性原创 2022-06-19 11:36:20 · 218 阅读 · 0 评论 -
python 单例模式
单例模式(Singleton Design Pattern)理解起来非常简单,一个类只允许创建一个实例,这个类就属于一个单例类原创 2022-06-16 22:23:40 · 316 阅读 · 0 评论