刷新
java 抽象工厂模式

博主头像 抽象工厂模式(Abstract Factory Pattern): 是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工 ...

设计模式学习(一)单例模式补充——单例模式析构

博主头像 目录前言无法调用析构函数的原因改进方法内嵌回收类智能指针局部静态变量参考文章 前言 在《单例模式学习》中提到了,在单例对象是通过new关键字动态分配在堆上的情况下,当程序退出时,不会通过C++的RAII机制自动调用其析构函数。本文讨论一下这种现象的原因以及解决方法。 无法调用析构函数的原因 在DCL ...

设计模式学习(一)单例模式的几种实现方式

博主头像 目录前言饿汉式懒汉式懒汉式DCLP局部静态式(Meyers' Singleton)单例模板参考文章 前言 单例模式,其核心目标是确保在程序运行的过程中,有且只有存在一个实例才能保证他们的逻辑正确性以及良好的效率。因此单例模式的实现思路就是确保一个类有且只有一个实例,并提供一个该实例的全局访问点。 单 ...

C语言中抽象函数与具体实现的命名与组织

博主头像 C语言中抽象函数与具体实现的命名与组织 在C语言的项目开发中,尤其是嵌入式系统和开源软件项目里,合理地命名和组织抽象函数及其具体实现对于提高代码的可读性、可维护性和可扩展性至关重要。以下是关于如何在这些项目中有效地处理抽象和实现的一些建议: 抽象函数与具体实现的区分 API作为接口:API定义了一组 ...

什么是函数回调

博主头像 什么是函数回调? 介绍 函数回调是一种编程概念,它描述的是这样一个过程:一个函数(称为回调函数)作为参数传递给另一个函数(称为调用函数),当满足一定条件或者在某个特定时刻,调用函数会调用传递过来的回调函数。这种机制允许程序员在编写代码时,能够在不同的上下文中重用函数,同时也能实现异步处理、事件驱动编 ...

[设计模式]创建型模式-抽象工厂模式

博主头像 简介 抽象工厂模式是一种创建型设计模式,它提供了一种创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。抽象工厂模式将一组具有共同主题的单个工厂封装起来,它提供接口用于创建相关或依赖对象的家族,而不需要指定具体的类。 抽象工厂模式包含以下几个核心角色: 抽象工厂(Abstract Facto ...

我们在SqlSugar开发框架中,用到的一些设计模式

博主头像 我们在《SqlSugar开发框架》中,有时候都会根据一些需要引入一些设计模式,主要的目的是为了解决问题提供便利和代码重用等目的。而不是为用而用,我们的目的是解决问题,并在一定的场景下以水到渠成的方式处理。不过引入任何的设计模式,都会增加一定的学习难度,除非是自己本身领会比较好了,就会显得轻松一些。本... ...

[设计模式]创建型模式-简单工厂模式

博主头像 简介 简单工厂模式又称为静态工厂模式,属于创建型模式,但不属于GOF23设计模式。由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。 简单工厂适用场景:工厂类负责创建的对象比较少;客户端只需要知道传入工厂类的参数,对于如何创建对 ...

[设计模式]创建型模式-单例模式

博主头像 前言 单例模式是最简单的一种模式。在Go中,单例模式指的是全局只有一个实例,并且它负责创建自己的对象。单例模式有减少内存和系统资源开销、防止多个实例产生冲突等优点。 因为单例模式保证了实例的全局唯一性,并且只被初始化一次,所以比较适合全局共享一个实例,且只需要被初始化一次的场景,例如数据库实例、全局 ...

[设计模式]行为型模式-策略模式

博主头像 前言 策略模式定义了一系列算法,并将每个算法封装起来,使它们可以互相替换,且算法的变换不会影响使用算法的客户。 在项目开发中,我们经常要根据不同的场景,采取不同的措施,也就是不同的策略。假设我们需要对a、b这两个整数进行计算,根据条件的不同,需要执行不同的计算方式。我们可以把所有的操作都封装在同一个 ...

遍历用for还是foreach?

博主头像 在编程的世界里,我们经常需要对数据进行循环处理,常用的两种方法就是:for循环和foreach循环。想象你站在一条装满宝贝的传送带前,你要亲手检查每一件宝贝。使用for循环就像是你亲手控制传送带的速度和方向,而使用foreach循环则是传送带自动运转,你只需专注于宝贝本身。 ...

设计模式(二十三)访问者

博主头像 一、定义 表示一个作用于某对象结构中的各个元素的操作。访问者模式让你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。访问者模式是一种对象行为型模式 二、描述 访问者模式是一种较为复杂的行为型模式,它包含访问者和被访问元素两个主要组成部分,这些被访问的元素通常具有不同的类型,且不同的访问者可 ...

如何在不依赖于Mq的形式下更优雅地实现异步任务处理!!!

背景 考虑到现有业务很多依赖于MQ的方式进行,这种方式需要依赖于MQ,发送消息到mq和消费mq消息时需要了解mq消息结构进行相应处理; 对于后续对同样的事件做其他处理的人如不能提前了解到已有相应消息发到了mq就得再发一次消息到mq等。 图1.1 消息中间件 现需要考虑在不依赖于Mq的形式下如何更优雅 ...

设计模式(二十二)模板方法

博主头像 一、定义 定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类不改变一个算法的结构即可重定义该算法的特定步骤。模板方法是一种类行为型模式 二、描述 模板方法模式结构比较简单,其核心是抽象类和其中的模板方法的设计,包含以下两个角色: 1、AbstractClass(抽象类):在抽象 ...

接单-合作

博主头像 可接: 渗透测试项目 linux方向项目设计(bishe) 前端开发 可接: 渗透测试项目 linux方向项目设计(bishe) 前端开发 可接: 渗透测试项目 linux方向项目设计(bishe) 前端开发 可接: 渗透测试项目 linux方向项目设计(bishe) 前端开发 可接: 渗透测试项目 ...

设计模式(二十一)策略

博主头像 一、定义 定义一系列算法类,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化。策略模式是一种对象行为型模式,又称为政策(Policy)模式。 二、描述 包含以下三个角色:1、Context(环境类):环境类是使用算法的角色,它在解决某个问题(即实现某个功能)时可以采 ...

设计模式(二十)状态

博主头像 一、定义 允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类,状态模式又称为状态对象,它是一种对象行为模式。 二、描述 状态模式是一种较为复杂的设计模式,用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题,包含以下三个角色: 1、Context(环境类):环境类又称为上 ...

<123···6>