- 博客(25)
- 收藏
- 关注
原创 力扣704题二分法探讨
起点为0 无可探讨。左闭右开时,即不考虑nums[end]的值为目标值的时候选 nums.size() 具体判断条件为 start < end左闭右闭时,即考虑nums[end]的值为目标值的时候选 nums.size() - 1 具体判断条件为 start <= end。
2025-03-22 02:02:14
161
原创 c++与c语言相关面试题
解释下C与C++的区别说说C++的struct与class以及C的struct区别说说new和malloc的区别,各自底层实现原理
2025-03-01 01:30:27
1655
原创 行为型模式设计模式--解析器模式
解析器模式(Interpreter Pattern)是一种行为型设计模式,它用于定义语言的文法规则,并提供一个解释器来解释这些规则。解析器模式的核心思想是:将语言的文法表示为一个类层次结构,并通过解释器来解释和执行这些文法规则。
2025-02-27 00:19:20
162
原创 行为型模式设计模式--备忘录模式
备忘录模式(Memento Pattern)是一种行为设计模式,用于在不暴露对象实现细节的情况下,捕获对象的内部状态并在需要时将其恢复到之前的状态。该模式常用于实现撤销操作或恢复到某个先前状态的功能。备忘录模式的核心思想是:在不破坏封装性的前提下,保存和恢复对象的内部状态。
2025-02-27 00:19:07
181
原创 行为型模式设计模式--模板方法模式
模板方法模式(Template Method Pattern)是一种行为设计模式,它定义了一个算法的框架,并允许子类在不改变算法结构的情况下重定义算法的某些步骤。模板方法模式的核心思想是:将算法的通用部分放在父类中,而将可变部分留给子类实现。
2025-02-27 00:18:56
127
原创 行为型模式设计模式--迭代器模式
迭代器模式(Iterator Pattern)旨在提供一种方法顺序访问一个集合对象(如数组或列表)而无需暴露其内部表示。迭代器模式使得遍历集合的代码与集合的具体实现分离,从而提高了代码的灵活性和可维护性。迭代器模式的核心思想是:将遍历聚合对象的职责分离出来,交给一个独立的迭代器对象。
2025-02-27 00:18:41
314
原创 行为型模式设计模式--访问者模式
访问器模式(Visitor Pattern)是行为型设计模式,专门处理多个对象结构的访问,依赖于对象的类型。访问器能够根据对象的具体类型执行合适的操作,而无需修改对象的类。即允许将算法与对象结构分离。访问器模式的核心思想是:在不修改对象结构的前提下,定义作用于这些对象的新操作。
2025-02-27 00:18:25
372
原创 行为型模式设计模式--中介者模式
中介模式(Mediator Pattern)是一种行为型设计模式,它通过引入一个中介对象来封装一组对象之间的交互,从而减少对象之间的直接依赖,从而实现松耦合。中介模式的核心思想是:将对象之间的复杂交互集中到中介对象中,使得对象之间不需要直接相互引用,而是通过中介对象进行通信。
2025-02-27 00:18:11
398
原创 行为型模式设计模式--责任链模式
职责链模式(Chain of Responsibility Pattern)是一种行为设计模式,它允许多个对象有机会处理请求,请求将沿着一个链条传递,直到有一个对象处理它,从而避免请求的发送者与接收者之间的耦合。职责链模式的核心思想是:将多个处理对象连成一条链,并沿着这条链传递请求,直到有对象处理它为止。
2025-02-27 00:17:55
275
原创 行为型模式设计模式--状态模式
状态模式(State Pattern)是一种行为型设计模式,它允许一个对象在其内部状态改变时改变其行为,并且状态在运行时可以改变(从编译时确定转为运行时确定,更加灵活)。状态模式的核心思想是:将对象的状态封装成独立的类,并将对象的行为委托给当前状态对象。
2025-02-27 00:17:39
297
原创 行为型模式设计模式--命令模式
命令模式(Command Pattern)一种行为型设计模式,它将请求(命令)封装成对象,从而使您可以使用不同的请求、排队或记录请求,以及支持可撤消操作。等功能。命令模式的核心思想是:将请求的发送者与接收者解耦,使得请求的发送者不需要知道请求的具体处理方式。
2025-02-26 21:59:17
245
原创 行为型模式设计模式--策略模式
策略模式(Strategy Pattern)是一种行为型设计模式,它允许你定义一系列算法或策略,并将它们封装在独立的类中,使得它们可以互相替换。它允许在运行时选择算法或策略。在 C++中实现策略模式时,可以通过接口或抽象基类来定义一系列算法,然后通过指向不同算法实现的对象指针来动态地选择所需的算法。这种设计使得算法可以在运行时进行更换,而不是在编译时确定。策略模式的核心思想是:将算法的使用与算法的实现分离,使得算法可以独立于客户端变化。
2025-02-26 21:58:14
326
原创 行为型模式设计模式--观察者模式
观察者模式(Observer Pattern)是一种行为设计模式,它定义了一种一对多的依赖关系,使得当一个对象的状态发生变化时,其(观察者)能够自动收到通知并更新。观察者模式的核心思想是:将观察者与被观察者解耦,使得它们可以独立变化。目标发送通知时,无需指定观察者,通知(可以携带通知信息作为参数)会自动传播。这使得观察者和观察目标之间的依赖关系达到松耦合。
2025-02-26 21:51:17
252
原创 结构型模式--桥接模式
桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立变化。桥接模式的核心思想是:通过组合而不是继承来解耦抽象和实现,从而使得两者可以独立扩展。
2025-02-26 21:49:23
176
原创 结构型模式--适配器模式
适配器模式(Adapter Pattern)是一种结构型设计模式,它允许将不兼容的接口转换为客户端期望的接口。适配器模式的核心思想是:通过一个中间层(适配器)来协调两个不兼容的接口,使它们能够一起工作。
2025-02-26 21:48:09
94
原创 结构型模式--代理模式
代理模式(Proxy Pattern)是一种结构型设计模式,它允许你提供一个代理对象来控制对另一个对象的访问。代理对象通常会在客户端和目标对象之间起到中介作用,可以在不改变目标对象的情况下,增加额外的功能或控制访问,比如权限检查、延迟加载、日志记录等。代理模式的核心思想是:通过引入一个代理对象,间接访问目标对象。
2025-02-26 21:44:23
204
原创 结构型模式--享元模式
享元模式(Flyweight Pattern)是一种结构型设计模式,它通过共享对象来减少内存使用和提高性能。享元模式的核心思想是:将对象的共享部分(内部状态)与不可共享部分(外部状态)分离,从而减少对象的数量,节省内存。
2025-02-26 21:41:21
283
原创 结构型模式--外观模式
外观模式(Facade Pattern)是一种结构型设计模式,它通过提供一个统一的接口来简化对复杂子系统的访问。外观模式的核心思想是:简化复杂系统的使用,通过提供一个高层接口,隐藏系统的复杂性,使得客户端可以更容易地使用系统。
2025-02-26 21:39:30
286
原创 结构型模式--装饰器模式
装饰器模式(Decorator Pattern)是一种结构型设计模式,它允许你动态地为对象添加功能,而无需修改其原始类。装饰器模式的核心思想是:通过组合(而不是继承)来扩展对象的功能,从而避免继承带来的类爆炸问题。
2025-02-26 21:37:51
246
原创 结构型模式--组合模式
组合模式(Composite Pattern)是一种结构型设计模式,它允许你将对象组合成树形结构来表示“部分-整体”的层次关系。组合模式使得客户端可以统一地处理单个对象和组合对象,而不必关心它们的具体类型。组合模式的核心思想是:让客户端以统一的方式处理单个对象和组合对象,从而简化客户端代码。
2025-02-26 20:57:44
129
原创 创建型设计模式--原型模式
原型模式(Prototype Pattern)是一种创建型设计模式,它允许你通过复制现有对象来创建新对象,而无需依赖于类的构造函数。原型模式的核心思想是:通过克隆(复制)现有对象来创建新对象,从而避免直接使用 `new` 关键字创建对象。
2025-02-26 01:49:08
359
原创 创建型设计模式--建造者模式
建造者模式(Builder Pattern)是一种创建型设计模式,允许在不暴露对象构建细节的情况下,逐步构建一个复杂的对象。,使得同样的构建过程可以创建不同的表示。要点在于,分步骤构建一个复杂的对象,其中,步骤是稳定的算法,而复杂对象的各个部分则经常变化。在该模式中,构建(步骤)算法由指挥者来定义,具体部件构建和装配工作由构建器实现。即委托构造(指挥者委托构建器)。
2025-02-26 01:45:23
535
原创 创建型设计模式--工厂模式
工厂模式(Factory Pattern)将对象的创建过程封装在一个工厂类中,客户端只需要通过工厂类来获取对象,而无需关心对象的具体实现。实现创建对象的代码与具体的业务逻辑的代码相隔离(即将对象的使用、对象的创建两个过程解耦)。
2025-02-26 01:40:42
250
原创 创建型设计模式--单例模式
单例模式(Singleton Pattern)属于创建模式,它确保一个类仅有一个实例,并提供一个全局访问点。能避免过多的实例化,节省内存和资源。
2025-02-26 01:29:50
305
原创 设计模式概述
对于设计模式,我的理解是,它是在项目中对于代码的复用性以及专注于类对象各个模块间的交互(即分工、合作)中存在的问题所产生的一系列解决方案以及经验总结。涉及对象的创建过程,帮助系统独立于如何创建、组合和表示对象。关注对象之间的交互和职责分配,提升对象的协作。关注类和对象的组合,帮助简化系统结构。,重心点在于对变化的理解,即专注于理清变化点与稳定点。,通常依赖于分解和抽象。
2025-02-26 01:18:20
1766
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人