设计模式
文章平均质量分 72
Gof23种设计模式学习与实践
MarkusZhang
水之积也不厚,则其负大舟也无力。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
重读Java设计模式: 适配器模式解析
在软件开发中,经常会遇到不同接口之间的兼容性问题。当需要使用一个已有的类,但其接口与我们所需的不兼容时,我们可以通过适配器模式来解决这一问题。适配器模式是一种结构型设计模式,它允许接口不兼容的类之间进行合作。本文将深入探讨适配器模式的概念、应用场景以及在Java中的实现方式。原创 2024-04-05 12:39:27 · 2815 阅读 · 0 评论 -
重读Java设计模式: 桥接模式详解
在软件开发中,经常会遇到需要在抽象与实现之间建立连接的情况。当系统需要支持多个维度的变化时,使用传统的继承方式往往会导致类爆炸和耦合度增加的问题。为了解决这一问题,我们可以使用桥接模式。桥接模式是一种结构型设计模式,它将抽象部分与其实现部分分离,使它们可以独立地变化。本文将深入探讨桥接模式的概念、应用场景以及在实际项目中的实现方式。原创 2024-04-05 14:45:54 · 1633 阅读 · 0 评论 -
重读Java设计模式: 深入探讨建造者模式,构建复杂对象的优雅解决方案
建造者模式是一种创建型设计模式,它的主要目的是将一个复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。这种模式常用于构建具有复杂结构的对象,例如包含多个部件的对象,或者对象的构建过程需要进行多个步骤。建造者模式是一种创建型设计模式,通过将构建过程与产品的表示分离,使得同样的构建过程可以创建不同的表示。本文介绍了建造者模式的概念、结构、优点、应用场景,并提供了示例代码进行说明。建造者模式可以有效地解决构建复杂对象时的代码冗长、难以维护的问题,是一种值得推荐的设计模式。原创 2024-03-31 10:35:10 · 1498 阅读 · 0 评论 -
重读 Java 设计模式: 深入探讨原型模式,灵活复制对象
通过本文的学习,我们了解了原型模式的原理、应用场景以及实现方式。原型模式通过复制现有对象来创建新对象,可以提高代码的效率和可维护性,适用于对象创建过程比较复杂、需要保持对象属性一致或动态生成对象的情况。在实现原型模式时,需要注意选择合适的拷贝方式,以确保复制出的新对象能够满足业务需求。希望本文对你理解和应用原型模式有所帮助,欢迎继续关注我们后续的设计模式深入探讨系列文章。原创 2024-03-31 10:00:22 · 1448 阅读 · 0 评论 -
重读 Java 设计模式: 深入探讨工厂模式,创建对象的灵活性与可维护性
今天我们来继续学习创建型设计模式中的工厂模式。在软件开发中,工厂模式是一种常见的设计模式,旨在提供一种灵活、可扩展的方式来创建对象实例。工厂模式通常分为简单工厂模式和抽象工厂模式两种主要形式,它们在不同情境下各具优势,可以帮助开发人员更好地管理对象的创建过程,并提高代码的可维护性和可扩展性。原创 2024-03-17 00:20:10 · 1252 阅读 · 0 评论 -
重读 Java 设计模式: 解析单例模式,保证唯一实例的创建与应用
单例模式是设计模式中最简单但又最常用的一种模式之一。它确保某个类只能有一个实例,并提供了全局访问点,使得该实例在整个应用程序中都可以被访问。在本文中,我们将深入探讨单例模式的实现方式、应用场景以及实践指南。原创 2024-03-10 17:00:04 · 1389 阅读 · 0 评论 -
重读 Java 设计模式: 探索经典之道与 Spring 框架的设计
记得大学刚毕业那会儿,想学点东西,于是拿出了《Head First 设计模式》这本书,就开始了阅读,我曾对这些模式感到晦涩难懂。然而,随着工作岁月的增长,我逐渐领悟到设计模式的价值,尤其是在实践中,特别是在Spring这样的大型设计框架中。原创 2024-03-03 23:33:31 · 1704 阅读 · 0 评论 -
单例模式学习
文章目录单例模式整体饿汉式懒汉式线程不安全线程安全代码双重检验锁内部类枚举单例模式整体考察点饿汉式懒汉式(线程安全)懒汉式(线程不安全)双重检验锁内部类枚举是否Lazy初始化否是是是是否是否多线程安全是是否是是是实现难度易易易较复杂一般易描述这种方式比较常用,但容易产生垃圾这种方式具备很好的lazy loading,能够在多线程下很好的工作,但是效率很低这种方式是最基本的实现方式,这种实现最大的问题就是不支持多线原创 2020-08-30 15:03:55 · 290 阅读 · 1 评论 -
工厂方法模式以及抽象工厂模式
工厂模式简介工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。优点1、调用者如果想要创建一个对象,只需要知道它的类名称就行了,而无需知道它是如何创建出来的。2、扩展性高,如果想增加一个产品的话,只要扩展一个工厂类就可以3、屏蔽产品的具体实现,调用者只关心产品的接口就可以了缺点会提高系统原创 2020-08-30 15:05:26 · 364 阅读 · 0 评论 -
适配器模式
适配器模式简介适配器模式,旨在解决两个不相关的接口能够在一起工作,起到一个兼容的作用。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。我们通过下面的实例来演示适配器模式的使用。其中,音频播放器设备只能播放 mp3 文件,通过使用一个更高级的音频播放器来播放 vlc 和 mp4优点1、可以让任何两个不相关的类一起运行2、提高类的复用3、增加了类的透明度4、灵活性好缺点1、过多的使用适配器,会使系原创 2020-08-30 15:06:38 · 237 阅读 · 1 评论 -
代理模式学习
上班的路上看到一篇关于代理模式的博客,上班前做下自己的总结,从代理模式的简介–>用法–>优缺点文章目录代理模式简介静态代理简介怎么用总结代理模式简介用一个通俗易通的例子来介绍下代理模式的场景,就比如在北京,一个房子的主人想要卖掉房子,他不想自己做这个事情,而是将这个事情交给房产中介来做,房产中介再找客户,签合同,走相关流程。这里出现几个点:房子主人、房产中介、卖房子、客户;房子主人就是被代理类,房产中介就是代理类、而卖房子是前两者需要做的事情,客户就是客户端。也就是说,房子主人和房产中介原创 2020-06-03 09:26:54 · 611 阅读 · 0 评论 -
装饰者模式
装饰者模式简介装饰者模式是对于一个已经存在的类,在不改变其代码的情况下扩充其功能的一种设计模式。说白了就是对现有类的一层包装。大家都知道,在扩充一个类的功能时,通常会通过继承的方式扩展子类来解决,但是子类会继承父类的静态特征,并且随着扩展功能的增多,子类会很膨胀。装饰者模式可以给一个对象添加额外的职责,就扩展功能来讲,装饰者模式比生成子类更灵活优点1、装饰类和被装饰类可以独立发展,不相互耦合2、装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功能缺点多层装饰比较复原创 2020-08-31 12:23:27 · 245 阅读 · 0 评论 -
桥接模式学习
桥接模式简介桥接模式用于解决抽象类和实现类之间解耦,使它俩之间可以独立变化,它通过提供抽象类和实现类之间的桥接结构,来实现二者的解耦主要解决了 在多种可能变化的情况下,用继承可能会造成类爆炸问题,扩展起来非常不灵活的问题优点1、抽象和实现的分离2、优秀的扩展能力3、实现细节对客户透明缺点桥接模式的引入会增加系统的理解和设计难度,由于聚合关联关系建立在抽象层,需要设计人员面向抽象层进行开发UML实现public interface DrawApi { public原创 2020-08-31 12:23:56 · 350 阅读 · 0 评论 -
模板方法模式
模板模式简介模板模式,这个很好理解,在父类定义好一个实现的流程,具体实现交给自己的子类来扩展,父类只需要把子类共有的代码写下来,扩展的功能交给子类来编写。优点1、封装不变部分、扩展可变部分2、提取公共代码,便于维护3、行为由父类控制,子类实现缺点每一种实现都需要一个子类来实现,导致类的增加,使系统更加庞大UML实现public abstract class PlayGame { abstract void initGame(); abstract void原创 2020-08-31 12:24:36 · 318 阅读 · 0 评论 -
【Head First 设计模式】策略模式
文章目录一、背景二、面向对象基础三、面向对象设计原则一、背景本内容是来自书籍《Head First 设计模式》的第一章,设计模式入门二、面向对象基础封装继承多态抽象三、面向对象设计原则封装变化面向接口编程,而非面向实现编程组合优于继承...原创 2021-10-07 17:39:01 · 684 阅读 · 0 评论 -
【Head First 设计模式】观察者模式
文章目录一、背景二、OO基础三、OO设计原则四、认识观察者模式1.定义2.UML图3.松耦合五、气象站的设计1.按照观察者模式的“推”方式实现a.UML图b.代码案例2.按照观察者模式的“拉”方式实现a.UMLb.代码案例3.“推” & “拉”的优劣六、总结1.观察者模式遵循了的设计原则2.观察者模式的一些要点纪要一、背景本内容是来自书籍《Head First 设计模式》的第二章,观察者模式(让对象知悉你的现况)二、OO基础封装继承多态抽象三、OO设计原则封装变化,将变化原创 2021-10-10 01:02:19 · 604 阅读 · 0 评论 -
【Head First 设计模式】装饰者模式
文章目录一、背景二、OO基础三、OO设计原则四、认识装饰者模式1.定义2.UML图五、星巴兹咖啡店的设计1.UML图2.装饰者构造的饮料订单3.代码案例六、总结1.装饰者模式遵循了的设计原则2.装饰者模式的一些要点纪要一、背景本内容是来自书籍《Head First 设计模式》的第三章,装饰者模式(在不修改底层代码的情况可以扩展组件的功能)二、OO基础封装继承多态抽象三、OO设计原则封装变化,将变化的部分封装起来,与固定不变的部分分开面向接口编程,而非面向实现编程组合优于继承原创 2021-10-12 00:20:07 · 336 阅读 · 0 评论 -
【Head First 设计模式】工厂模式
文章目录一、背景二、OO基础三、OO设计原则四、认识工厂模式0.工厂模式解决了什么?a.一段代码b.识别变化c.什么样的设计能规避这些影响呢?1.简单工厂2.工厂方法模式3.抽象工厂模式五、总结一、背景本内容是来自数据《HeadFirst设计模式》的第四章,工厂模式(将实例化代码从应用中抽离出来)二、OO基础封装继承多态抽象三、OO设计原则封装变化,将变化的代码与固定不变的代码分开面向接口编程,而非面向实现编程组合优于继承为交互对象之间的松耦合而努力对扩展开发,对修改关闭原创 2021-10-17 15:48:59 · 566 阅读 · 0 评论 -
【Head First 设计模式】命令模式
文章目录一、背景二、OO基础三、OO设计原则四、认识命令模式一、背景本内容是来自书籍《Head First 设计模式》的第五章,命令模式(将方法调用封装起来)二、OO基础封装继承多态抽象三、OO设计原则组合优于继承四、认识命令模式...原创 2021-10-24 12:37:10 · 521 阅读 · 0 评论
分享