算法/数据结构/设计模式
文章平均质量分 62
算法/数据结构/设计模式
ThinkCockpit
浓情淡酒笑人生,阳出万里搏前程!
展开
-
设计模式(023)行为型之中介者模式
中介者模式是一种行为型设计模式,用于减少对象之间的直接通信,而是通过一个中介对象来进行间接通信。这种模式有助于减少对象之间的耦合,使得系统更易于维护和扩展。原创 2024-04-16 23:22:30 · 669 阅读 · 0 评论 -
设计模式(022)行为型之解释器模式
解释器模式是一种行为型设计模式,用于定义一种语言的文法,并且在该语言中解释句子的意义。这种模式通常用于实现编程语言解释器、正则表达式引擎等场景。原创 2024-04-16 23:02:33 · 648 阅读 · 0 评论 -
设计模式(021)行为型之访问者模式
问者模式是一种行为型设计模式,它可以在不修改现有代码结构的情况下,为复杂的对象结构添加新的操作。该模式将数据结构和数据操作进行分离,使得数据结构可以独立于操作进行变化,同时也可以在不改变操作的前提下增加新的操作。原创 2024-04-16 22:47:04 · 528 阅读 · 0 评论 -
设计模式(020)行为型之备忘录模式
备忘录模式是一种行为型设计模式,用于在不破坏封装性的前提下捕获一个对象的内部状态,并在该对象之外保存这个状态,以便之后可以将该对象恢复到之前的状态。这种模式通常用于需要记录对象状态历史、撤销操作或实现“回到过去”功能的场景。原创 2024-04-16 22:25:04 · 695 阅读 · 0 评论 -
设计模式(019)行为型之状态模式
状态模式是一种行为型设计模式,它允许对象在内部状态发生变化时改变它的行为,使得对象在不同状态下有不同的行为表现,而且可以方便地添加新的状态而不必修改已有的代码。原创 2024-04-16 22:04:37 · 545 阅读 · 0 评论 -
设计模式(018)行为型之策略模式
策略模式是一种行为设计模式,它定义了一系列算法,将每个算法封装成一个对象,并使它们可以互换。策略模式使得算法的变化可以独立于使用算法的客户端。核心思想是将算法的定义与使用分离,使得算法可以独立于客户端进行变化、扩展和替换。原创 2024-04-10 23:05:56 · 544 阅读 · 0 评论 -
设计模式(017)行为型之责任链模式
责任链模式的核心思想是将请求发送者与接收者解耦,让多个对象都有机会处理请求,从而避免了请求发送者与接收者之间的直接耦合关系原创 2024-04-10 22:52:01 · 433 阅读 · 0 评论 -
设计模式(016)行为型之命令模式
命令模式的核心思想是将请求的发送者与请求的接收者解耦,通过命令对象将二者进行绑定。这样可以实现对请求的封装、记录、排队和撤销操作等功能原创 2024-04-10 22:35:40 · 398 阅读 · 0 评论 -
设计模式(015)行为型之模板方法模式
模板方法模式,它定义了一个算法的骨架,将一些步骤延迟到子类中实现。这个模式允许子类重新定义算法的某些步骤,而不改变算法的结构。通常,模板方法由一个抽象类实现,其中包含算法的基本步骤,并且这些步骤可以是抽象的或具体的。子类继承这个抽象类并重写其中的特定方法,从而定制算法的行为。这种模式常用于实现一个通用的算法框架,以便不同的子类可以根据自身需求实现算法的具体步骤。原创 2024-04-10 22:12:21 · 395 阅读 · 0 评论 -
设计模式(014)行为型之迭代器模式
迭代器模式,用于提供一种方法来顺序访问一个聚合对象中的各个元素,而又不需暴露该对象的内部表示。它将遍历和聚合分离开来,使得可以独立地改变遍历方法而不影响聚合对象。这种模式通常包括一个迭代器接口定义和一个聚合对象接口定义,以及相应的迭代器和聚合对象的实现类。原创 2024-04-10 21:56:31 · 289 阅读 · 0 评论 -
设计模式(013)行为型之观察者模式
观察者模式是一种常见的软件设计模式,用于实现对象之间的一对多依赖关系。在观察者模式中,一个对象(称为主题或可观察对象)维护一个依赖列表,即一组观察者对象。当主题对象的状态发生变化时,它会自动通知所有观察者,使它们能够自动更新。原创 2024-04-10 21:36:45 · 620 阅读 · 0 评论 -
设计模式(012)结构型之代理模式
代理模式是通过创建一个代理对象,来控制对另一个对象的访问。代理对象和被代理对象实现了相同的接口,因此对客户端而言,它们是可以互换的。客户端通过调用代理对象的方法来访问被代理对象,代理对象可以在调用被代理对象之前或之后执行一些额外的操作,比如记录日志、实现缓存等。原创 2023-05-09 22:28:10 · 102 阅读 · 0 评论 -
设计模式(011)结构型之享元模式
享元模式的主要目的是在不增加内存消耗的前提下,尽可能地减少系统中的对象数量。该模式将对象分为两种类型:内部状态和外部状态。内部状态是可以共享的,它不会随着对象的不同而改变,而外部状态是不可以共享的,它会随着对象的不同而改变。原创 2023-05-09 16:28:08 · 92 阅读 · 0 评论 -
设计模式(010)结构型之外观模式
外观模式(Facade Pattern)是一种常用的设计模式,它提供了一个简单的接口,隐藏了系统的复杂性,使得外部客户端可以更加方便地使用系统的功能。外观模式属于结构型设计模式,其目的在于通过提供一个高层次的接口来简化复杂系统的使用。原创 2023-05-09 15:03:34 · 84 阅读 · 0 评论 -
设计模式(009)结构型之装饰器模式
装饰器模式(Decorator Pattern)允许在运行时动态地向对象添加功能,而无需修改其源代码。在该模式中,有一个被装饰的对象(Component),它定义了一些基本的操作。装饰器(Decorator)对象是对这个基本对象的一个包装,可以在不改变其接口的情况下,为其添加新的行为或修改现有的行为。原创 2023-05-09 11:48:55 · 53 阅读 · 0 评论 -
设计模式(008)结构型之组合模式
组合模式将对象组合成树形结构来表现“整体/部分”的层次结构,并且可以像处理单个对象一样处理整个树形结构。当需求场景是体现部分与整体层次的结构时;或者你希望用户可以忽略组合对象与单个对象的不同,而统一的使用组合结构中的所有对象时,就应该考虑用组合模式了。组合模式包含以下几个角色:定义组合中所有对象的通用接口,可以是抽象类或者接口,包含了一些基本操作方法,如添加子节点、删除子节点、获取子节点等。组合中的叶子节点,表示最基本的单个对象。组合中的容器节点,包含了一组子节点,可以是叶子节点或者其他容器节点。原创 2023-04-20 20:00:34 · 44 阅读 · 0 评论 -
设计模式(007)结构型之桥接模式
桥接模式将一个抽象与其实现分离,以便两者可以独立地变化。它通过将实现细节委托给一个抽象接口来解耦实现和抽象。这种模式的主要思想是通过将对象的实现细节封装在一个独立的类层次结构中,从而实现对象间的松耦合。原创 2023-04-20 16:51:17 · 38 阅读 · 0 评论 -
设计模式(006)结构型之适配器模式
适配器模式将一个类的接口转换成客户端所期望的另一个接口,使得原本不兼容的接口能够协同工作。适配器模式主要由三个角色组成:适配器(Adapter)、目标(Target)和被适配者(Adaptee)原创 2023-04-20 15:47:37 · 48 阅读 · 0 评论 -
设计模式(005)创建型之原型模式
原型模式是在运行时创建一个基于现有对象的克隆。这意味着可以复制一个对象,而无需显式地指定其类。这对于创建相似对象的情况非常有用,尤其是在对象的创建过程比较昂贵或复杂的情况下。原创 2023-04-16 13:52:38 · 42 阅读 · 0 评论 -
设计模式(004)创建型之建造者模式
建造者模式(BuilderPattern)是一种创建型设计模式,用于将一个复杂对象的构建过程和其表示分离开来,从而使同样的构建过程可以创建不同的表示。Builder模式主要包括Builder,Director,Product三个角色。原创 2023-04-16 12:54:54 · 44 阅读 · 0 评论 -
设计模式(003)创建型之单例模式
单例模式是一种设计模式,用于确保一个类仅有一个实例,并提供全局访问点。该模式适用于需要全局唯一实例的场景,如数据库连接、日志记录器等。实现单例模式的方法有多种,分为饿汉式和懒汉式。原创 2023-04-16 10:53:02 · 49 阅读 · 0 评论 -
设计模式(002)创建型之抽象工厂模式
抽象工厂模式原创 2023-04-13 23:58:37 · 48 阅读 · 0 评论 -
设计模式(001)创建型之工厂模式
简单工厂模式适用于对象类型比较少,且不太需要扩展的场景,而工厂方法模式适用于对象类型比较多,且需要扩展的场景。简单工厂模式最大的优点在于工厂类中包含了必要的判断逻辑,根据客户端的选择条件动态实例化相关的类,对于客户端来说,祛除了与具体产品的依赖。而工厂方法模式是把简单工厂的内部逻辑判断移到了客户端代码来实现。简单工厂模式想加功能(如计算平方、开方)需要改工厂类,工厂方法模式则是增加工厂类,改客户端。原创 2023-04-07 17:01:19 · 49 阅读 · 0 评论 -
设计模式概览(23种设计模式+六大原则)
设计模式概览:23种设计模式、设计模式六大原则原创 2023-04-05 23:15:32 · 1598 阅读 · 0 评论