随笔分类 -  设计模式

摘要:访问者模式(Visitor Pattern)属于行为型模式 概述 生活中经常会有这样的情况,同样的事物不同人有完全不同的感受,正所谓一千个读者一千个哈姆雷特。 程序中也是一样,往往不同的访问者会有不同的行为以及结果,这就是访问者模式。 代码实现 这里以李白和苏轼对庐山不同的感受为例介绍访问者模式: 阅读全文
posted @ 2022-08-24 21:05 天航星 阅读(28) 评论(0) 推荐(0) 编辑
摘要:策略模式(Strategy Pattern)属于行为型模式 概述 生活中会面临很多抉择,每一个抉择会导向不同的结果,这时就会出现策略的选择。 程序中也是一样,而且更加复杂,生活中的抉择一般只有几个,但程序中可能有十多个甚至数十个,也就是我们常用的 if-else 或者 switch。当只有少量选择时 阅读全文
posted @ 2022-08-24 19:02 天航星 阅读(27) 评论(0) 推荐(0) 编辑
摘要:状态模式(State Pattern)属于行为型模式 概述 在标准大气压下,水在 0 ~ 100 度之间时,会呈现液态;在 0 度以下会变成固态;100 度以上会变成气态。 物质在不同的条件下呈现不同的状态,对象可能也会像这样存在很多种状态,在不同的状态下可能会有不同的行为,可以通过状态模式来实现这 阅读全文
posted @ 2022-08-17 21:43 天航星 阅读(38) 评论(0) 推荐(0) 编辑
摘要:观察者模式(Observer Pattern)属于行为型模式 概述 在 Java 中,一个对象的状态发生改变,就可能会影响到其他的对象,与之相关的对象可能也会联动的进行改变。 比如监听器机制,当具体的事件触发时,可以在创建的监听器中执行相关的逻辑。 观察者模式可以实现这样的功能,当对象发生改变时,观 阅读全文
posted @ 2022-08-16 21:36 天航星 阅读(36) 评论(0) 推荐(0) 编辑
摘要:备忘录模式(Memento Pattern)属于行为型模式 概述 2021 年 10 月 1 日下午,河南驻马店的一名 13 岁女中学生,因和同学发生不愉快喝下半瓶百草枯。 10 月 5 日,抢救 4 天情况恶化,家属泣不成声称“肺部一个小时一变”。 10 月 6 日下午,据武警河南省总队医院消息, 阅读全文
posted @ 2022-08-15 21:24 天航星 阅读(35) 评论(0) 推荐(0) 编辑
摘要:中介者模式(Mediator Pattern)属于行为型模式 概述 一提到中介,大家都非常熟悉,生活中最常见的就是房屋中介。 虽然中介要收取一定费用,但却能给房东和租客都提供大量遍历,房东只需要把房屋信息提供给中介,租客也只需要将租金交给中介,由中介处理中介环节,给两方都提供了便利。这就是中介模式的 阅读全文
posted @ 2022-08-14 19:21 天航星 阅读(26) 评论(0) 推荐(0) 编辑
摘要:迭代器模式(Iterator Pattern)属于行为型模式 概述 迭代器模式是 Java 中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,而不需要知道集合对象的底层表示。 迭代器是学习 Java 语言的基础,没有迭代器,集合类的遍历就成了问题,正是因为有迭代器的存在,才能更加优雅的使用 阅读全文
posted @ 2022-08-14 18:17 天航星 阅读(23) 评论(0) 推荐(0) 编辑
摘要:命令模式(Command Pattern)属于行为型模式 概述 现在各大电子厂商都在推智能家居,即可以通过手机这一个终端控制多个家用电器,比之前的单个设备智能由对应遥控器控制的方案要方便很多。这其实就是命令模式的应用。 命令模式将请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命 阅读全文
posted @ 2022-08-14 17:30 天航星 阅读(34) 评论(0) 推荐(0) 编辑
摘要:责任链模式(Chain of Responsibility Pattern)属于行为型模式 概述 责任链,即责任的链条,在生活中是很常见的。 比如在工作中提交审批,会经历责任人的层层审批,最后才会通过,这一审批流程就是责任链。 再比如,JavaWeb 中学习的 Filter 过滤器,正是采用的责任链 阅读全文
posted @ 2022-08-14 15:56 天航星 阅读(57) 评论(0) 推荐(0) 编辑
摘要:模板模式(Template Pattern)属于行为型模式 概述 在生活中常常会遇到这样的情况,做某一件事情,有些步骤是固定的,有些步骤的变化的。 比如去医院看病,挂号和排队这两个步骤是固定的,不管是什么病到了医院都得遵循这两个步骤;但是后续的检查和治疗这两个步骤是变化的,不同的病需要采用不同的检查 阅读全文
posted @ 2022-08-14 14:42 天航星 阅读(373) 评论(0) 推荐(2) 编辑
摘要:解释器模式(Interpreter Pattern)属于行为型模式 概述 解释器模式是指给定一门语言, 基于它的语法, 定义解释器来解释语言中的句子。是一种按照规定的语法进行解析的模式。 就比如编译器可以将源码编译解释为机器码, 让 CPU 能进行识别并运行。解释器模式的作用其实与编译器一样,都是将 阅读全文
posted @ 2022-08-13 17:44 天航星 阅读(59) 评论(0) 推荐(0) 编辑
摘要:享元模式(Flyweight Pattern)属于结构型模式 概述 享元,英文名称为 Flyweigh,轻量级的意思。它通过与其他类似对象共享数据来减小内存占用,也就是它名字的来由:享-分享。 大家都知道围棋有黑白子,用程序定义一局围棋时,如果给每颗黑子和每颗白子都定义一个对象,那一局围棋会产生大量 阅读全文
posted @ 2022-08-12 23:52 天航星 阅读(77) 评论(0) 推荐(0) 编辑
摘要:外观模式(Facade Pattern)属于结构型模式 概述 在生活中,经常遇到这样的情况:办理一个业务,需要找很多部门签字盖章,这些部门往往距离较远,无奈只得四处奔波。这时候相信所有人都有一个同样的诉求:要是找一个部门就能办理完所有业务就好了! 编程来源于生活,生活中是这样,代码中也是这样。如果一 阅读全文
posted @ 2022-08-11 22:28 天航星 阅读(22) 评论(0) 推荐(0) 编辑
摘要:装饰器模式(Decorator Pattern)属于结构型模式 概述 装饰,顾名思义,就是在原有基础上增添东西以显示更好的效果。 生活中非常多这样的例子,衣服饰品、珠宝首饰、房子装修都是在进行装饰。 开发中这样的情况也非常多,比如用户的性别在数据库表中一般都是存的编码,然后通过字典表进行翻译,进而在 阅读全文
posted @ 2022-08-10 21:34 天航星 阅读(38) 评论(0) 推荐(0) 编辑
摘要:组合模式(Composite Pattern)属于结构型模式 概述 组合模式实际上就是将多个组件进行组合,让用户可以对它们进行一致性处理。 比如文件夹,一个文件夹中可能包含有很多个子文件夹或是文件。它就像是一个树形结构一样,有分支有叶子,而组合模式则是可以对整个树形结构上的所有节点进行递归处理,比如 阅读全文
posted @ 2022-08-01 21:59 天航星 阅读(39) 评论(0) 推荐(0) 编辑
摘要:代理模式(Proxy Pattern)属于结构型模式 概述 代理模式就是一个代理对象来间接访问对象,常用于无法直接访问某个对象或访问某个对象不方便的情况。 实际上代理在生活中处处都存在,比如房屋中介就是代理,Apple 的授权经销商就是代理,访问国外网站所用的代理服务器也是代理,Spring 框架的 阅读全文
posted @ 2022-07-30 17:19 天航星 阅读(70) 评论(0) 推荐(0) 编辑
摘要:桥接模式(Bridge Pattern)属于结构型模式 概述 桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。 比如需要创建电脑对象,市面上的电脑非常多,品牌有华为、苹果、联想等 阅读全文
posted @ 2022-07-30 12:26 天航星 阅读(96) 评论(0) 推荐(0) 编辑
摘要:适配器模式(Adapter Pattern)属于结构型模式 概述 结构型模式关注如何将现有的类或对象组织在一起形成更加强大的结构。 在生活中,我们经常遇到这样的一个问题:轻薄笔记本通常只有 type-c 或者 usb-a 接口,没有网口。但日常使用中是往往需要连接网口上网的,这时想到的第一个解决方案 阅读全文
posted @ 2022-07-22 18:00 天航星 阅读(43) 评论(0) 推荐(0) 编辑
摘要:原型模式(Prototype Pattern)属于创建型模式 概述 原型模式实际上就是对象的拷贝。 原型模式使用原型实例指定待创建对象的类型,并且通过复制这个原型来创建新的对象。也就是说,原型对象作为模板,通过克隆操作,来产生更多的对象,就像细胞的复制一样。 原型模式的拷贝分为浅拷贝和深拷贝。 代码 阅读全文
posted @ 2022-07-21 22:48 天航星 阅读(36) 评论(0) 推荐(0) 编辑
摘要:建造者模式(Builder Pattern)属于创建型模式 概述 建造者模式使用多个简单的对象一步一步构建成一个复杂的对象。 一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。 经常使用的 StringBuiler 就是建造者模式的典型实现。 代码实现 普通 阅读全文
posted @ 2022-07-12 21:07 天航星 阅读(40) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示