设计模式
文章平均质量分 91
豆恭梓
在读计算机研究生一枚^_^
展开
-
深入理解设计模式-行为型之模板(和回调区别联系)
模板设计模式(Template Design Pattern)是一种行为型设计模式,它定义了一个算法的骨架,将算法的一些步骤延迟到子类中实现。模板设计模式允许子类在不改变算法结构的情况下重新定义算法的某些步骤。模板设计模式的核心思想是:将一个算法的主要结构定义在一个模板方法中,而将具体(某些)步骤的实现交给子类去完成。// 模板类 抽象类:Beverage-->饮料// 模板方法,定义算法的骨架brew();// 具体步骤,由子类实现// 公共方法// 具体子类。原创 2023-08-13 15:46:51 · 450 阅读 · 0 评论 -
深入理解设计模式-行为型之观察者
观察者模式(Observer Pattern)是一种行为型设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听一个主题对象,当主题对象发生变化时,所有依赖于它的观察者对象都会得到通知并更新。Subject(主题):维护一个观察者列表,提供方法用于添加、删除和通知观察者。Observer(观察者):定义一个接口,用于接收主题对象的通知,以便在主题发生变化时更新自身状态。原创 2023-08-13 15:25:19 · 603 阅读 · 0 评论 -
深入理解设计模式-结构型之适配器
集成旧系统或第三方库:当你需要使用一个已经存在的类或库,但其接口与你当前系统的其他部分不兼容时,适配器模式可以帮助你将这个类适配为符合你系统需求的接口。适配器模式的核心思想就是通过适配器类,将适配者的接口适配成符合你的系统需求的目标接口,从而能够让这个已经存在的类能够被无缝地集成到你的系统中。接口版本升级:当接口的一个新版本发布,但你的系统还在使用旧版本接口时,通过适配器模式可以兼容旧版本接口,同时适配到新版本接口上。接口的多态性:适配器模式可以帮助你在多态性的情境中使用不同的实现,以适应不同的场景。原创 2023-08-13 14:50:53 · 669 阅读 · 0 评论 -
深入理解设计模式-结构型之代理模式
这里对动态代理实现进行补充。原创 2023-08-12 15:33:53 · 65 阅读 · 0 评论 -
深入理解设计模式-创建型之建造者模式(与工厂区别)
建造者设计模式(Builder Design Pattern)和工厂设计模式(Factory Design Pattern)都是面向对象设计中的创建型模式,但它们解决的问题和应用场景有所不同。建造者设计模式旨在解决复杂对象的创建问题,特别是当对象的构造过程非常复杂,需要一步步构建,并且具有多个可选参数或配置选项时。该模式的主要思想是将对象的构建过程与表示分离,使得同样的构建过程可以创建不同的表示。Director(指挥者):负责使用构造器接口来构建一个复杂对象。原创 2023-08-12 14:07:05 · 906 阅读 · 0 评论 -
深入理解设计模式-创建型之工厂模式
当创建逻辑比较复杂,是一个“大工程”的时候,我们就应该考虑使用工厂模式,封装对象的创建过程,将对象的创建和使用相分离。何为创建逻辑比较复杂呢?我总结了下面两种情况。第一种情况:类似规则配置解析的例子,代码中存在 if-else 分支判断,动态地根据不同的类型创建不同的对象。针对这种情况,我们就考虑使用工厂模式,将这一大坨 if-else 创建对象的代码抽离出来,放到工厂类中。还有一种情况,尽管我们不需要根据不同的类型创建不同的对象,但是,单个对象本身的创建过程比较复杂。原创 2023-08-11 19:58:13 · 220 阅读 · 0 评论 -
深入理解设计模式-创建型之单例模式
尽管单例是一个很经典的设计模式,但在实际的开发中,我们也很少按照严格的定义去使用它,以上的知识大多是为了理解和面试而使用和学习,有些人甚至认为单例是一种反模式(anti-pattern),压根就不推荐使用。事实上,我们在JDK或者其他的通用框架中很少能看到标准的单例设计模式,这也就意味着他确实很经典,但严格的单例设计确实有它的问题和局限性,我们先看看在源码中的一些案例。如果未来某一天,一个实例已经无法满足我们的需求,我们需要创建一个,或者更多个实例时,就必须对源代码进行修改,无法友好扩展。原创 2023-08-11 10:35:08 · 358 阅读 · 0 评论 -
深入理解设计模式的设计原则
来封装变化的部分,将。原创 2023-06-30 13:32:40 · 394 阅读 · 2 评论