![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 70
PandaThug
SCU2020
展开
-
设计模式——解释器模式
定义解释器的接口,约定解释器的解释操作,主要包含解释方法 interpret()。原创 2023-01-15 10:58:49 · 502 阅读 · 2 评论 -
设计模式——备忘录模式
记录当前时刻的内部状态信息,提供创建备忘录和恢复备忘录数据的功能,实现其他业务功能,它可以访问备忘录里的所有信息。:对备忘录进行管理,提供保存与获取备忘录的功能,但其不能对备忘录的内容进行访问与修改。:负责存储发起人的内部状态,在需要的时候提供这些内部状态给发起人。在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外。,以便以后当需要时能将该对象。该模式又叫快照模式。原创 2023-01-10 17:51:14 · 268 阅读 · 0 评论 -
设计模式——访问者模式
封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问方式。:实现抽象元素角色提供的 accept() 操作,其方法体通常都是 visitor.visit(this) ,另外具体元素中可能还包含本身业务逻辑的相关操作。:定义一个访问具体元素的接口,为每个具体元素类对应一个访问操作 visit() ,该操作中的参数类型标识了被访问的具体元素。:声明一个包含接受操作 accept() 的接口,被接受的访问者对象作为 accept() 方法的参数。原创 2023-01-08 17:36:50 · 496 阅读 · 0 评论 -
设计模式——迭代器模式
提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。:定义访问和遍历聚合元素的接口,通常包含 hasNext()、first()、next() 等方法。:实现抽象迭代器接口中所定义的方法,完成对聚合对象的遍历,记录遍历的当前位置。:定义存储、添加、删除聚合对象以及创建迭代器对象的接口。:实现抽象聚合类,返回一个具体迭代器的实例。原创 2023-01-04 15:06:43 · 481 阅读 · 0 评论 -
设计模式——观察者模式
指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。:也叫抽象目标类,它提供了一个用于保存观察者对象的聚集类和增加、删除观察者对象的方法,以及通知所有观察者的抽象方法。:也叫具体目标类,它实现抽象目标中的通知方法,当具体主题的内部状态发生改变时,通知所有注册过的观察者对象。:它是一个抽象类或接口,它包含了一个更新自己的抽象方法,当接到具体主题的更改通知时被调用。:实现抽象观察者中定义的抽象方法,以便在得到目标的更改通知时更新自身的状态。原创 2022-12-20 16:10:07 · 77 阅读 · 0 评论 -
设计模式——中介者模式
定义一个中介对象来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互。中介者模式又叫调停模式,它是迪米特法则的典型应用。中介者模式将原本多个对象直接的相互依赖变成了中介者和多个同事类的依赖关系。当同事类越多时,中介者就会越臃肿,变得复杂且难以维护。当对象之间存在复杂的网状结构关系而导致依赖关系混乱且难以复用时。当想创建一个运行于多个类之间的对象,又不想生成新的子类时。原创 2022-12-17 00:03:45 · 471 阅读 · 0 评论 -
设计模式——状态模式
传统的解决方案是:将这些所有可能发生的情况全都考虑到,然后使用 if-else 或 switch-case 语句来做状态判断,再进行不同情况的处理。且增加新的状态时要添加新的 if-else 语句,这违背了“开闭原则”,不利于程序的扩展。对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。当一个对象的行为取决于它的状态,并且它必须在运行时根据状态改变它的行为时,就可以考虑使用状态模式。一个操作中含有庞大的分支结构,并且这些分支决定于对象的状态时。原创 2022-12-11 13:18:34 · 88 阅读 · 0 评论 -
设计模式——职责链模式
为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。多个对象可以处理一个请求,但具体由哪个对象处理该请求在运行时自动确定。可动态指定一组对象处理请求,或添加新的处理者。需要在不明确指定请求处理者的情况下,向多个处理者中的一个提交请求。说明职责链模式存在以下两种情况:降低了对象之间的耦合度。该模式使得一个对象无须知道到底是哪一个对象处理其请求以及链的结构,发送者和接收者也无须拥有原创 2022-12-04 00:02:56 · 93 阅读 · 0 评论 -
设计模式——命令模式
这样两者之间通过命令对象进行沟通,这样方便将命令对象进行储存、传递、调用、增加与管理。将一个请求封装为一个对象,使。原创 2022-12-01 16:34:13 · 105 阅读 · 0 评论 -
设计模式——策略模式
该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。原创 2022-11-29 23:50:15 · 88 阅读 · 0 评论 -
设计模式——模板方法模式
一、基本思想定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。二、应用场景算法的整体步骤很固定,但其中个别部分易变时,这时候可以使用模板方法模式,将容易变的部分抽象出来,供子类实现。当多个子类存在公共的行为时,可以将其提取出来并集中到一个公共父类中以避免代码重复。首先,要识别现有代码中的不同之处,并且将不同之处分离为新的操作。最后,用一个调用这些新的操作的模板方法来替换这些不同的代码。原创 2022-11-28 23:36:31 · 253 阅读 · 0 评论 -
设计模式——享元模式
运用共享技术来有效地。它通过来大幅度减少需要创建的对象数量、避免大量相似类的开销,从而提高系统资源的利用率。原创 2022-11-26 10:56:17 · 99 阅读 · 0 评论 -
设计模式——外观模式
又称为作门面模式通过,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。原创 2022-11-20 21:46:53 · 109 阅读 · 0 评论 -
设计模式——装饰器模式
指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式。原创 2022-11-18 08:51:04 · 258 阅读 · 0 评论 -
设计模式——桥接模式
当一个类内部具备时,使用桥接模式可以解耦这些变化的维度,使高层代码架构稳定。将抽象与实现分离,使它们可以独立变化。用来实现,从而降低了抽象和实现这两个可变维度的耦合度。特点:遵循了里氏替换原则和依赖倒置原则,最终实现了开闭原则,对修改关闭,对扩展开放。原创 2022-11-16 09:01:21 · 169 阅读 · 0 评论 -
设计模式——适配器模式
将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。原创 2022-11-11 13:47:46 · 97 阅读 · 0 评论 -
设计模式——代理模式
由于某些原因需要给某对象提供一个代理以控制对该对象的访问。访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。原创 2022-11-09 23:24:21 · 128 阅读 · 0 评论 -
设计模式——建造者模式
将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示。将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。它将变与不变相分离,即产品的组成部分是不变的,但每一部分是可以灵活选择的。原创 2022-11-03 16:12:00 · 105 阅读 · 0 评论 -
设计模式——原型模式
用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。在这里,原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效,根本无须知道对象创建的细节。原创 2022-11-01 18:59:29 · 120 阅读 · 0 评论 -
设计模式——单例模式
一个类只有一个实例,且该类能自行创建这个实例的一种模式。例如,Windows 中只能打开一个任务管理器,这样可以避免因打开多个任务管理器窗口而造成内存资源的浪费,或出现各个窗口显示内容的不一致等错误。原创 2022-10-31 17:09:33 · 128 阅读 · 0 评论 -
设计模式——抽象工厂模式
为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。原创 2022-10-28 11:29:48 · 511 阅读 · 0 评论 -
设计模式——工厂模式
工厂模式是对简单工厂模式的进一步抽象化。好处是使系统在不修改原来代码的情况下引进新的产品,即满足开闭原则。原创 2022-10-27 10:22:30 · 335 阅读 · 0 评论 -
设计模式——简单工厂模式
一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。原创 2022-10-25 08:15:00 · 93 阅读 · 0 评论 -
设计模式——23种设计模式的分类
设计模式有两种分类方法,即根据模式的目的来分和根据模式的作用范围来分。一、根据目的来分根据模式是用来完成什么工作来划分,这种方式可分为3种:创建型模式结构型模式行为型模式创建型模式创建型模式用于描述“怎样创建对象”,它的主要特点是“将对象的创建与使用分离”,GoF中提供了5种创建型模式:工厂方法抽象工厂单例原型建造者结构型模式结构型模式描述如何将类或对象按某种布局组成更大的结构,GoF中提供了7种创建型模式:代理适配器桥接装饰外原创 2022-10-24 23:22:37 · 147 阅读 · 0 评论 -
设计模式——七大软件架构设计原则
开闭原则是总纲,它告诉我们要对扩展开放,对修改关闭;里氏替换原则告诉我们不要破坏继承体系;依赖倒置原则告诉我们要面向接口编程;单一职责原则告诉我们实现类要职责单一;接口隔离原则告诉我们在设计接口的时候要精简单一;迪米特法则告诉我们要降低耦合度;合成复用原则告诉我们要优先使用组合或者聚合关系复用,少用继承关系复用。目的只有一个:降低对象之间的耦合,增加程序的可复用性、可扩展性和可维护性。访问加限制,函数要节俭,依赖不允许,动态加接口,父类要抽象,扩展不更改。原创 2022-09-28 16:48:24 · 403 阅读 · 0 评论