随笔分类 -  课程 / 设计模式

摘要:一、单例模式 单例模式是常见的一种软件设计模式,单例对象的类只能实例化一个对象。 该类负责创建对象,同时保证只能创建一个对象。并提供一个访问它的全局访问点,该实例被所有程序模块共享。 一般应用与工具类的实现或者消耗资源的场景。 特点: 类构造函数私有 持有自己类的引用 对外获取实例的静态方法 代码: 阅读全文
posted @ 2023-09-20 19:27 ImreW 阅读(398) 评论(0) 推荐(0)
摘要:一、概念 解释器模式(Interpreter Pattern) 用于构造一个简单的语言解释器,将字符串按照自定义的方式解释执行 ,是一种不常用的设计模式 除非从事底层开发自己需要去定义较为复杂的表达式,否则基本上不同这个设计模式 二、适用场景 (1)当一个语言需要解释执行,并可以将该语言中的句子表示 阅读全文
posted @ 2023-04-01 12:13 ImreW 阅读(47) 评论(0) 推荐(0)
摘要:一、概念 策略模式(Strategy Pattern)是当有多种算法且调用和返回方式相似的情况下,仅类型不同时,可以通过该模式将其封装起来,让它们之间可以互相替换。 策略模式可以用于改造代码中的if-else逻辑 二、适用场景 如果在一个系统里面有许多类,它们之间的区别仅在于它们的类型,那么使用策略 阅读全文
posted @ 2023-01-16 20:13 ImreW 阅读(94) 评论(0) 推荐(0)
摘要:一、设计模式概括 设计模式是对大家实际工作中写的各种代码进行高层次抽象的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。,其中最出名的当属Gang of Four (GoF) 的分类了,他们将设计模式分类为23 种经典的模式,根据用途我们又可以分为三大类 创 阅读全文
posted @ 2022-12-16 17:19 ImreW 阅读(78) 评论(0) 推荐(0)
摘要:一、概念 中介者模式(Mediator Pattern)又称为调节者模式或者调停者模式,定义了一个中介对象来封装一系列对象之间的交互关系,从而使各个对象之间不需要显式地相互引用,达到松耦合的目的。使得当某些对象之间的功能发生改变时,不会立刻影响其他的一些对象之间的功能。 核心思想:通过中介者对象解耦 阅读全文
posted @ 2022-12-15 14:01 ImreW 阅读(93) 评论(0) 推荐(0)
摘要:一、概念 访问者模式(Vistor Pattern)是用于数据结构与数据操作分离的一种设计模式。是指封装一些作用于某种数据结构中的各种元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新操作。 模式动机:对于存储在一个集合中的对象,他们可能具有不同的类型(即使有一个公共的接口),对于该集 阅读全文
posted @ 2022-12-15 08:51 ImreW 阅读(117) 评论(0) 推荐(0)
摘要:一、概念 状态模式(State Pattern)也称为状态机模式(State Machine Pattern),当控制一个对象状态的条件表达式过于复杂的时候,就可以考虑使用状态模式,通过把状态的判断逻辑转移到表示不同状态的一系列类中,这样就可以把复杂的逻辑简单化,使得对象的行为依赖于它的状态,并且会 阅读全文
posted @ 2022-12-14 11:34 ImreW 阅读(211) 评论(0) 推荐(0)
摘要:一、概念 备忘录模式(Memento Pattern)又称之为快照模式(Snapshop Pattern)或者令牌模式(Token Pattern),是指在不破坏封装的前提下,捕获一个对象的内部状态,并在对象之外保存这个状态,这样我们就可以在需要的时候将该对象恢复到原先保存的状态了 大白话: 备忘录 阅读全文
posted @ 2022-12-13 16:35 ImreW 阅读(108) 评论(0) 推荐(0)
摘要:一、概念 命令模式(Command Pattern)是对命令的封装,每一个命令都是一个操作。首先请求的一方发出请求要求执行一个操作,然后接收的一方收到请求,并执行操作。 命令模式解耦了请求方和接收方,请求方只需要发送命令而不需要关心命令是如何被接收的,不关心命令怎么操作,也不关心命令是否被执行等。 阅读全文
posted @ 2022-12-13 08:25 ImreW 阅读(73) 评论(0) 推荐(0)
摘要:一、概念 责任链模式(Chain of Responsibility Pattern)是指将链中的每一个节点看作是一个对象,每个节点处理的请求均不同,且每个节点内部自动维护了一个下一个节点对象。当一个请求在链路的头部发出时,会沿着链的路径依次传递给每一个节点对象,直到有对象处理这个请求为止。 责任链 阅读全文
posted @ 2022-12-12 14:30 ImreW 阅读(91) 评论(0) 推荐(0)
摘要:一、概念 迭代器模式,最常见的就是开发中使用JDK自带的Iterator 遍历集合。这个模式在我们实际开发中用的场景并不多。另外增强的for循环虽然是循环输出数据,但是他不是迭代器模式, 迭代器具备对元素的删除等操作。而增强for循环是不可以的。 迭代器模式(Iterator Pattern)又称为 阅读全文
posted @ 2022-12-12 13:35 ImreW 阅读(213) 评论(0) 推荐(0)
摘要:一、概念 观察者模式(Observer Pattern)又称为发布/订阅(Publish/Subscribe)模式,在对象之间定义了一对多的依赖关系,当一个对象改变状态,依赖它的对象会收到通知并自动更新. 观察者模式无外乎2个操作,观察者订阅自己关心的主题(Subject)和主题有数据变化后通知观察 阅读全文
posted @ 2022-12-11 10:50 ImreW 阅读(74) 评论(0) 推荐(0)
摘要:一、概念 模板模式(Template Pattern)也叫模板方法模式,指在抽象类中将业务逻辑划分为多个方法,通过模板方法中调用这些方法后,组成完整的业务处理流程。子类只需重写相关方法实现,即可实现同一流程的不同处理方式 核心思想:定义一个抽象模板类,提供子类实现。 模式动机:许多业务有着相同的执行 阅读全文
posted @ 2022-12-10 15:59 ImreW 阅读(72) 评论(0) 推荐(0)
摘要:一、概念 享元模式(Flyweight Pattern)是 "资源池技术"实现方式,主要用于减少创建对象的数量,以减少内存占用和提高性能。 模式动机:在创建大量对象时,有可能会造成内存溢出,享元模式把其中共同的部分抽象出来,保存在内存中,如果有相同的业务请求,直接返回在内存中已有的对象,避免重新创建 阅读全文
posted @ 2022-12-10 13:55 ImreW 阅读(243) 评论(0) 推荐(0)
摘要:一、概念 组合模式(Composite Pattern)也称之为整体-部分(Part-Whole)模式。核心是通过将单个对象(叶子节点)和组合对象(树枝节点)用相同的接口进行表示,组合成树形结构,使得单个对象(即叶子对象)和组合对象(即容器对象)的使用具有一致性。 它将对象以树形结构表示,最顶层的节 阅读全文
posted @ 2022-12-09 21:03 ImreW 阅读(44) 评论(0) 推荐(0)
摘要:一、概念 门面模式(Facade Pattern),又被称之为外观模式。该模式提供一个统一的接口,用来访问相同子系统或者不同子系统之中的一群接口。使得子系统更加容易调用。 可以理解为:将多个接口功能组合到一个接口中,使得客户只要调用一个接口,而不用调用多个接口就能达到目的,避免外部直接访问具体的业务 阅读全文
posted @ 2022-12-08 09:53 ImreW 阅读(178) 评论(0) 推荐(0)
摘要:一、概念 代理模式(Proxy Pattern)是指用一个代理类来包装具体实现类,由代理类代替目标类执行,从而为目标类增加一些额外的功能、处理。 简单说就是:在操作一个对象和对象中的方法时,不是直接操作这个对象,而是通过一个代理对象来操作这个目标对象,在调用代理方法前后或者抛出异常增加一些额外处理 阅读全文
posted @ 2022-12-08 09:03 ImreW 阅读(83) 评论(0) 推荐(0)
摘要:一、概念 装饰器模式(Decorator Pattern)指在不改变原有对象结构的基础之上,将功能附加到对象上,提供了比继承更有弹性的替代方案(扩展原有对象的功能)。符合开闭原则,对拓展开发,对修改关闭 模式动机:一般有2种方式可以实现给一个类或对象增加行为(方法) 继承:通过继承一个现有类可以使得 阅读全文
posted @ 2022-12-07 21:01 ImreW 阅读(53) 评论(0) 推荐(0)
摘要:一、概念 (一)组合、聚合 聚合:就是说各个对象聚合在一起工作,但是我没有你也行,我照样可以正常运行。 组合呢,关系就比较密切,组合中的各个对象之间组成了一个整体,缺少了某一个对象就不能正常运行或者说功能会有很大缺陷。 也就是说聚合对象 "不具备相同生命周期",而组合对象 "具有相同的生命周期" ( 阅读全文
posted @ 2022-12-06 21:34 ImreW 阅读(128) 评论(0) 推荐(0)
摘要:一、概念 适配器模式(Adapter Pattern)是指将一个类的接口转换成符合调用方规范的另一个接口,使原本的接口不兼容的类可以一起工作 适配器模式又叫做变压器模式,也叫做包装模式(Wrapper),但是包装模式可不止一个,还包括装饰者模式。 适配器模式有3种实现; 默认适配器 对象适配器 类适 阅读全文
posted @ 2022-12-06 09:37 ImreW 阅读(97) 评论(0) 推荐(0)