瀑布 软件开发 漫画 模式

【建造者设计模式详解】Java/JS/Go/Python/TS不同语言实现

简介 建造者模式(Builder Pattern),也叫生成器模式,属于创建型模式。它使用多个简单的对象一步一步构建成一个复杂的对象。它允许你使用相同的创建代码生成不同类型和形式的对象。 当你希望使用代码创建不同形式的产品 (例如各种商品和订单) 时, 一些基本部件不会变,而其组合经常变化的时候,就 ......
设计模式 语言 模式 Python Java

【RSocket】使用 RSocket(二)——四种通信模式实践

Source Code: https://github.com/joexu01/rsocket-demo 0. 四种通信模式 让我们来简单复习一下 RSocket 的四种通信模式: 即发即忘 - FireAndForget:立即发送一个请求,无需为这个请求发送响应报文。适用于监控埋点,日志上报等,这 ......
RSocket 模式

简易的工厂设计模式

工厂设计模式是一种创建型设计模式,它提供了一种创建对象的最佳方式,而无需暴露对象的创建逻辑。在工厂模式中,我们定义一个接口或抽象类,该接口或抽象类用于创建对象,但让子类决定要实例化的类。工厂方法模式使类的实例化延迟到其子类。 下面是一个完整的C#实现案例: 首先,我们定义一个接口,用于创建对象: p ......
设计模式 简易 工厂 模式

详细讲解23种设计模式

工厂方法模式(Factory Method Pattern) 工厂方法模式是一种创建型设计模式,它定义了一个用于创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法把对象的实例化推迟到子类。 代码示例: csharpCopy codepublic interface IProduct { vo ......
设计模式 模式

“无所不能的中介”——代理模式

1.简介 定义:将某个对象中围绕某个主题的一些列行为委托给一个代理对象去执行,代理对象将控制和管理对原有对象的访问,调用者想要访问目标对象,必须通过代理对象去间接访问,代理对象在调用方和目标对象之间可以起到”中介“的作用。代理一词本身,其实就可以很好发现的关键点,如果暂时无法理解晦涩的概念,那么在阅 ......
无所不能 中介 模式

自己动手从零写桌面操作系统GrapeOS系列教程——9.实模式介绍

学习操作系统原理最好的方法是自己写一个简单的操作系统。 在GrapeOS中会用到2种CPU模式,一种是实模式(real mode),另一种是保护模式(protected mode)。在本教程中,保护模式特指32位保护模式。这两种模式最主要的不同点是对内存地址的访问方式不同,此外还有其它的不同点。这两 ......
桌面 GrapeOS 模式 教程 系统

自己动手从零写桌面操作系统GrapeOS系列教程——14.屏幕显示原理与文本模式

学习操作系统原理最好的方法是自己写一个简单的操作系统。 一、屏幕显示原理 电脑显示器屏幕是由很多很小的像素组成的。每个像素就像是一个小灯泡,在屏幕上一排一排的整齐排列着。只要能控制每个像素的颜色就能显示出各种各样的图形。如果近距离观察过会场或室外的大屏幕会有更直观的感受,这种大屏幕上每个像素就是一个 ......
文本 屏幕 原理 桌面 GrapeOS

Spring:现代Java开发的必备框架

Spring:现代Java开发的必备框架 Spring是一个轻量级的Java框架,它提供了各种企业级应用程序开发的工具和技术。Spring框架的核心是IoC容器和AOP框架。IoC容器使得Java应用程序的组件化变得更加容易,AOP框架使得Java应用程序的切面编程变得更加容易。Spring框架还提 ......
框架 Spring Java

干货 | BitSail Connector 开发详解系列一:Source

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 BitSail 是字节跳动自研的数据集成产品,支持多种异构数据源间的数据同步,并提供离线、实时、全量、增量场景下全域数据集成解决方案。本系列聚焦 BitSail Connector 开发模块,为大家带来详细全面的开 ......
干货 Connector BitSail Source

电子钢琴项目--嵌入式开发

电子钢琴项目 复盘一下之前做的一个小项目,温习一下c语言和Linux的知识,唔,就是这样子。 一、环境搭建 所用软件以及工具如下: 1、VMware-workstation-full搭配Ubuntu18.04的Linux操作系统,VMware是桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行不同 ......
嵌入式 钢琴 项目 电子

工厂模式进阶用法,如何动态选择对象?

前言 工厂设计模式可能是最常用的设计模式之一,我想大家在自己的项目中都用到过。可能你会不屑一顾,但这篇文章不仅仅是关于工厂模式的基本知识,更是讨论如何在运行时动态选择不同的方法进行执行,你们可以看看是不是和你们项目中用的一样? 欢迎关注个人公众号【JAVA旭阳】交流沟通 小菜鸟的问题 直接上例子说明 ......
对象 工厂 模式 动态

Git多分支 远程仓库 协同开发以及解决冲突

一、Git多分支及远程仓库 1.Git多分支 首先要搞明白什么是多分支? 为什么要多分支? 接下来回答一下这两个问题吧!首先分支就是一个仓库的字库;多分支可以保证主分支的版本都是可以查看的版本、我们都在开发分支开发,开发完成,合并到主分支。 分支操作的详细步骤 第一步:分支查看 git branch ......
分支 仓库 Git

明解STM32—GPIO理论基础知识篇之八种工作模式

一、引言 在之前围绕STM32的GPIO的基本结构进行了介绍,图1为STM32的5V容忍的GPIO口内部基本结构图,图2为GPIO的基本结构中各个模块部分的概述。 阅读GPIO基本结构的内容能够对GPIO的工作模式有更深的了解。正是由于GPIO的结构中包含了多样性的电路和模块,因此进行合理的配置组合 ......
基础知识 理论 模式 基础 知识

Sidecar-详解 JuiceFS CSI Driver 新模式

近期发布的 JuiceFS CSI Driver v0.18 版本中,我们提供了一种全新的方式访问文件系统,即 JuiceFS 客户端以 Sidecar 方式运行于应用 Pod 中,且客户端与应用同生命周期。 这个全新的功能将帮助用户在 Serverless Kubernetes 环境中使用 Jui ......
Sidecar JuiceFS 模式 Driver CSI

【大型软件开发】开发日志(五).net框架与C++的融合:CLR——C++如何调用C#的DLL

做什么? 先说一下场景,现在正在开发一个Qt ActiveServer,也就是用一个应用程序去向其他的组件暴露接口,以达到提供服务的目的。 然后新版的框架要提供大部分功能,也就是要重做大部分模块。现在有一个问题,就是有一个用于提供向web发送post请求,获得回执并解析的模块,叫LBD_WebApi ......
软件开发 框架 软件 日志 net

驱动开发:配置Visual Studio驱动开发环境

在正式开始驱动开发之前,需要自行搭建驱动开发的必要环境,首先我们需要安装`Visual Studio 2013`这款功能强大的程序开发工具,在课件内请双击`ISO`文件并运行内部的`vs_ultimate.exe`安装包,`Visual Studio`的安装非常的简单,您只需要按照提示全部选择默认参... ......
环境 Visual Studio

架构师日记-软件高可用实践那些事儿

关于软件的高可用,是一个老生常谈的话题。“高可用性”(High Availability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。其计算公式是:可用率=(总时间-不可用时间)/总时间。 ......
事儿 架构 日记 软件

Qt-FFmpeg开发-视频播放【软解码】(1)

Qt-FFmpeg开发-视频播放【软解码】 | 更多精彩内容 | | | | 👉个人内容分类汇总 👈 | | 👉音视频开发 👈 | 1、概述 介四里沒有挽过的船新版本,挤需感受三番钟,里造会干我一样,爱象节个版本 最近研究了一下FFmpeg开发,功能实在是太强大了,网上ffmpeg3、4的文 ......
Qt-FFmpeg FFmpeg 视频 Qt

Qt-FFmpeg开发-视频播放【软解码 + OpenGL显示RGB图像】(3)

Qt-FFmpeg开发-视频播放【软解码 + OpenGL显示RGB图像】 | 更多精彩内容 | | | | 👉个人内容分类汇总 👈 | | 👉音视频开发 👈 | 1、概述 最近研究了一下FFmpeg开发,功能实在是太强大了,网上ffmpeg3、4的文章还是很多的,但是学习嘛,最新的还是不能 ......
Qt-FFmpeg 图像 FFmpeg OpenGL 视频

SpringCloud微服务实战——搭建企业级开发框架(四十九):数据字典注解的设计与实现

数据字典是系统中基本的必不可少的功能,在多种多样的系统中,数据字典表的设计都大同小异。但是使用方式确是多种多样,设计好一套易用的数据字典功能模块,可以使开发事半功倍。 常用的数据字典使用方式: 直接在SQL语句中LEFT JOIN (当然是不推荐这样用的) 查询出原始数据,然后再根据原始数据需要的字 ......
注解 SpringCloud 字典 框架 数据

SpringCloud微服务实战——搭建企业级开发框架(五十):集成移动端推送功能的系统通知公告数据库设计

系统的通知公告功能似乎是很容易被忽略的功能模块,在传统的软件系统中,一般OA类软件系统不可或缺,而在应用软件系统中此功能或有或无,在现在大多数的互联网软件系统中,此功能又必不可缺。所以,在框架设计时,我们需要考虑业务系统是否需要此功能模块,然后将此功能作为扩展插件,在需要时开启,在不需要时配置关闭即 ......

SpringCloud微服务实战——搭建企业级开发框架(五十一):微服务安全加固—自定义Gateway拦截器实现防止SQL注入/XSS攻击

SQL注入是常见的系统安全问题之一,用户通过特定方式向系统发送SQL脚本,可直接自定义操作系统数据库,如果系统没有对SQL注入进行拦截,那么用户甚至可以直接对数据库进行增删改查等操作。 XSS全称为Cross Site Script跨站点脚本攻击,和SQL注入类似,都是通过特定方式向系统发送攻击脚本 ......
SpringCloud 框架 Gateway 企业 SQL

软件教程 | Jupyter&stata之stata_kernel攻略

目录: 一、什么是stata_kernel Github:kylebarron/stata_kernel 1. stata_kernel简介 Jupyter是一个用于交互式数据科学的开源生态系统,简单来说通过stata_kernel,用户可以为jupyter工具安装一个stata内核,再通过jupy ......

推荐一款.Net Core开发的后台管理系统YiShaAdmin

若依(RuoYi)是码云上一款精美的开源快速开发平台,作者毫无保留给个人及企业免费使用。RuoYi目前有三个版本:普通版本(RuoYi)、前后端分离版本(RuoYi-Vue)、微服务版本(RuoYi-Cloud)。.net的小伙伴们估计很羡慕JAVA的生态,现在.net core发展也很快,奈何生态 ......
YiShaAdmin 后台 管理系统 系统 Core

设计模式(十三)----结构型模式之桥接模式

1 概述 现在有一个需求,需要创建不同的图形,并且每个图形都有可能会有不同的颜色。我们可以利用继承的方式来设计类的关系: 我们可以发现有很多的类,假如我们再增加一个形状或再增加一种颜色,就需要创建更多的类。 试想,在一个有多种可能会变化的维度的系统中,用继承方式会造成类爆炸,扩展起来不灵活。每次在一 ......
模式 结构型 设计模式 结构

设计模式(十一)----结构型模式之装饰者模式

1、概述 我们先来看一个快餐店的例子。 快餐店有炒面、炒饭这些快餐,可以额外附加鸡蛋、火腿、培根这些配菜,当然加配菜需要额外加钱,每个配菜的价钱通常不太一样,那么计算总价就会显得比较麻烦。 使用继承的方式存在的问题: 扩展性不好 如果要再加一种配料(火腿肠),我们就会发现需要给FriedRice和F ......
模式 结构型 设计模式 结构

设计模式(十)----结构型模式之适配器模式

1、概述 如果去欧洲国家去旅游的话,他们的插座如下图最左边,是欧洲标准。而我们使用的插头如下图最右边的。因此我们的笔记本电脑,手机在当地不能直接充电。所以就需要一个插座转换器,转换器第1面插入当地的插座,第2面供我们充电,这样使得我们的插头在当地能使用。生活中这样的例子很多,手机充电器(将220v转 ......

利用Git+GitHub进行团队协作开发

自己之前写过两篇关于Git和GItHub使用的文章,分别是 浅谈使用git 进行版本控制博客链接:https://www.cnblogs.com/wj-1314/p/7992543.html 使用GitHub的点点滴滴的博客链接:https://www.cnblogs.com/wj-1314/p/9 ......
团队 GitHub Git

VisionPro学习笔记(1)——软件介绍和基本使用

前言 自己使用visionPro已经有段时间了,最近也一直在研究其算子的理论,为了加深印象,计划将自己的学习笔记整理在博客园,当然其官方文档对如何使用及其各种算子都有详细的介绍,所以这里的笔记仅仅为个人加深理解而做,就当是个个人日记,日后也好查找。 !!! 为了方便,大部分图片来自网络,所以如有侵权 ......
VisionPro 笔记 软件

设计模式之(13)--模板方法模式

今天我们来学习下模板方法设计模式。 模板方法(Template Method Pattern):抽象的父类中定义一个操作中算法的骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构,即可重新定义该算法的某些特定步骤。简单地讲,就是“父类的模板方法定义不变的流程,子类重写流程中的方法”。 ......
模式 设计模式 模板 方法