【軟件設計師】面向對象技術

1.面向對象基礎

1.1 基本概念

方法重載是函數名字相同,參數列表不同

組成

????????即組合,指整體與部分的關系,整體與部分生命周期相同

聚合

????????關聯關系的一個特例,是體現整體與部分,即使has-a的關系,此時整體與部分是可以分離的,具有不同的生命周期,部分可以屬于多個整體對象,也可以為多個整體對象共享。聚合對象是指一個對象包含其他對象。

特征:封裝、繼承、泛化

對象基本概念:

? ? ? ? +:public

? ? ? ? #:protected,同包或子類可以訪問

????????default,同包可以訪問

? ? ? ? -:private,只有內部的方法可以訪問

? ? ? ?

對象的特性:

? ? ? ? 1,良好定義的行為

? ? ? ? 2,清晰的邊界? ? ? ?

? ? ? ? 3,可拓展性

面向對象方法:Booch方法、Coad方法和OMT方法

????????對象的狀態包括這個對象的所有屬性(通常是靜態)以及每個屬性當前的值(通常是動態的);對象的行為代表了其外部可見的活動;操作代表了一個類提供給它的對象的一種服務

封裝:

? ? ? ? 概念:封裝是指將邏輯上相關的數據以及行為綁定在一起,使信息對使用者隱蔽的方法叫“封裝”

? ? ? ? 組成:對象名、屬性、行為(方法)

? ? ? ? 消息來自于外界,是通過 接口 與封裝的對象 進行信息傳遞

? ? ? ? 在面向對象軟件開發中,封裝是一種信息隱藏技術,其目的是使得對象的使用者和生產者分離。

類:組成:類名、數據成員、成員函數

類是具有相同屬性和服務的一組對象的集合

類的分類:

? ? ? ? 1.實體類(數據類):現實世界真實存在的實體,有大量屬性;比如人

? ? ? ? 2.接口類(功能類、邊界類、interface):為用戶提高系統合作交互的方式,有大量的方法;接口類分為人和系統兩大類;其中人的接口可以是顯示屏、窗口、web窗體、對話框、菜單、列表框、其他顯示控制、條形碼、二維碼或者用戶與系統交互的其他方法;系統接口涉及把數據發送到其他系統,或者從其他系統接收數據;

? ? ? ? 3.控制類:描述業務邏輯,用來控制活動流,充當實體類和接口類之間的協調者

????????父類又稱超類、泛類

? ? ? ? 子類是父類的特殊化,父類是子類的泛化

? ? ? ? java不支持二義性(子類不能擁有兩個父親,即使多重多態,使用多重多態容易造成子類中存在二義性的成員)?

? ? ? ? 繼承是類之間的一種關系,在定義和實現一個類的時候,可以在一個已經存在的類的基礎上進行,繼承用于在已存在的類的基礎上創建新類。

多態:? ? ? ??

????????重寫,父類與子類之間的不同表現(2個類),

????????重載發生在一個類之間的不同表現(1個類)

? ? ? ? 過載多態:一個名字在不同的上下文中所代表 的含義不一樣,重載是屬于這樣的一種表現。

? ? ? ? 多態:同一個操作作用于不同的對象,可以有不同的解釋,產生不同的執行結果。在運行時,可以通過指向基類的指針,來調用實現派生類中的方法。同一消息可以調用多種不同類的對象的方法,這些類有某個相同的超類。

? ? ? ? 在面向對象方法中,多態指客戶類無需知道所調用方法的特定子類的實現。在使用時,用戶發送一個通用的消息,而實現的細節則有由于接受對象自行決定。

? ? ??在面向對象方法中,支持多態的是動態綁定。

????????動態綁定:運行時;是指過程調用和響應調用所需執行的代碼在運行時加以結合

????????靜態綁定:編譯時;是過程調用和響應調用所需執行的代碼在編譯時加以結合

????????動態綁定和多態:要有繼承關系、要發生了重寫、要有【父類引用】指向【子類對象】

? ? ? ?參數多態和包含多態稱為通用多態,過載多態和強制多態稱為特定多態

????????參數多態:應用廣泛、最純的多態。采用參數化模板(函數模板或類模板),通過給定不同的類型參數,使得一個結構有多種類型。

? ? ? ? 包含多態:同樣的操作可用于一個類型及其子類型(不是子類)。包含多態一般需要進行運行時的類型檢查

????????過載多態:同一個名(操作符、函數名)在不同的上下文中所代表的含義不同

? ? ? ? 強制多態:編譯程序通過語義操作,把操作對象的類型強行加以變換,以符合函數或操作符的要求

? ? ? ?

總結:?

對象:屬性(數據)+方法(操作)+對象ID

? ? ? ? 封裝:隱藏對象的屬性和實現細節,僅對外公開接口(信息隱藏技術)

類(實體類、控制類、邊界類):

? ? ? ? 接口:一種特殊的類,它只有方法定義沒有實現

繼承和泛化:復用機制(單重繼承和多重繼承)

? ? ? ? 重置/覆蓋:在子類中重重新定義已經定義的方法

? ? ? ? 重載:一個類可以有多個同名而參數不同的方法

多態:不同對象收到同樣的消息產生不同的結構

? ? ? ? 過載多態:同一個名字在不同的上下文所代表的含義不同

1.2?面向對象設計7大原則?

24e97b02e6134702a78ddb20680b3402.png

b97e007d501c459d947c8f70fd4193bf.png

477bbb95a9514ac5a3c81ff548c38b47.png

2、UML

2.1 UML圖的概念以及分類

? ? ? ? 交互圖:序列圖、通訊圖、交互圖和定時圖

5b7199b08c1c48569fa80871c98d7d83.png

f26a37e8c1d14eb88b75b67c8a3bfe37.png

? ? ? ? 類圖和對象圖區別:最上面那行如果有冒號,就是對象圖(對象圖是”某一時刻一組對象以及他們之間的關系“)。

? ? ? ? 序列圖和通信圖是站在代碼的角度去看待的,活動圖是站在業務邏輯的角度去看待

c9eb2512752b4ba7b1a0bdb1d8d34323.png

? ? ? ? 組件,和系統的模塊是一樣的。

4a6c586bf4cd43ae9796c6b3c86152e8.png

? ? ? ? ?部屬圖是唯一一個跟硬件有關的

? ? ? ? 在關聯上可以標注重復度(表示一個類的實例能夠與另一個類的多少個實例相關聯)和角色。兩個類之間可以有多個關聯,但這些關聯需要不同的角色進行標識

2.2 類圖

類圖中的關系:

3ffce78fc4a343faa63a86b360c944e5.png

代碼實現舉例:

? ? ? ? 關聯:getB(),getA()

? ? ? ? 依賴:A{? ?xy(Bb){}? ? }?

? ? ? ? 泛化:父子類;特殊/一般關系

? ? ? ? 聚合:一對多的關系;整體和部分的生命周期不同

? ? ? ? 組合:一對多的關系;整體和部分的生命周期相同 ;組合的關系比聚合緊密一點,比如汽車報廢,車上的零件就全廢了 ;B{list(A)}? ? ? ?

? ? ? ? 實現:接口和類之間的關系。

2.3 用例圖中的關系

????????用例圖之間的關系(之前考過文字概念):

c6ebdffb3c4e46af892fdbeab14e7950.png

5182c90a99524105a4ce262e1d4f85ba.png

? ? ? ? 包含:<<include>>、拓展:<<extend>>、

6191f36f8a8647c8896a548c7153e661.png

4d585da8b46443c999d7db7ddd6a519e.png

2.4 各類圖的學習

2.4.1 類圖和對象圖

f4d58c47367f4bd18a8b90f828868942.png

842da49e18f84bafa9fdb3055991a4ec.png

8cd65225c81c48719417290a1ba8d3db.png

? ? ? ? 對象圖跟類圖很像,除名字那邊,類圖的名字是類名,對象圖的名字的“類名? :? 對象名“,所以要區分只要看名字就可以了。

2.4.2 用例圖

? ? ? ? 用例圖描述一組用例、參與者以及他們之間的關系

? ? ? ? 用例之間的關系:包含關系、拓展關系、泛化關系

? ? ? ? 用例建模的流程:1.識別參與者(必須) 2.合并需求獲得用例(必須) 3.細化用例描述(必須) 4.調整用例模型(可選)

ff0adea74b4a402e9bf4baf05482222c.png

91a152be82a54a2eb132ab9a4411bcba.png

2.4.3 協作圖(通訊圖)

? ? ? ? 強調的是發送和接收信息的對象之間的組織結構,

組成元素有:

? ? ? ? 1,對象

? ? ? ? 矩形表示,前面為對象名后面為類名,表示類的一個實例

? ? ? ? 2,鏈接

? ? ? ? ?兩個對象間用單一線條表示,用來表示在通訊圖中的關聯,目的是讓不同的消息在不同系統對象之間傳遞

? ? ? ? 3,消息

? ? ? ? 通訊圖中對象之間通信的方式,

2.4.4 活動圖

? ? ? ? 組成:活動狀態和動作狀態、轉換和對象

? ? ? ? 活動圖可以有開始、結束和一系列動作,可以表示分支(條件叫做【監護表達式】)、合并、分岔和會合

3、面向對象開發技術

? ? ? ? 采用面向對象開發技術,對象是系統運行時基本實體。它包括數據(屬性),也包括作用與數據的操作(行為)。一個對象通常由 對象名、屬性和操作 三部分組成

? ? ? ? 在面向技術中,不同的對象在收到同一消息時可以產生完全不同的結果,這一現象稱之為多態,它通過繼承機制來支持。在運行時,可以通過指向基類的指針來調用實現派生類中的方法。如果一個語言只支持類而不支持多態,只能說它是基于對象,但不是面向對象

4、面向對象程序設計(面向對象開發流程)

????????(考的有點多,也有點偏)

? ? ? ? 在采用面向對象開發系統時,主要步驟有:面向對象分析、面向對象設計、面向對象程序設計、面向對象測試

? ? ? 面向對象分析主要強調問題是什么,描述軟件要做什么,不關心解決方案。面向對象設計側重問題的解決方案,并且要考試技術和方面的細節

? ? ? ? 面向對象分析主要包括:認定對象(名詞)、組織對象(抽象成類)、描述對象間的相互作用、定義對象的操作、定義對象的內部信息。目的是為了獲得對應問題的理解,確定系統的性能功能要求。最重要的也是分析第一步是確定問題域

? ? ? ? 面向對象設計是設計分析模型和實現相應的源代碼。

? ? ? ? 面向對象程序設計選擇合適的面向對象設計語言,將程序組織為相互協作的對象集合,每個對象表示某個類的實例,類通過集成等關系進行組織,

? ? ? ? 面向對象測試是盡可能早的進行系統測試,以發現系統中可能存在的錯誤并進行修復,進而保證系統質量

2af1a2081ed8477a83530b1eb283a7db.png

? ? ? ? xml:可擴展標記語言,是標準通用標記語言的子集,是一種用于標記電子文件使其具有結構性的標記語言

????????HTML更適合處理靜態網頁、

????????prolog是邏輯型程序設計語言

? ? ? ? LISP是一種函數式編程語言

? ? ? ? python是一種面向對象。解釋型計算機程序設計語言? ? ?

? ? ? ? C++面向對象的編譯型語言

5、設計模式

5.1 順口溜

? ? ? 設計模式有點多,順口溜記得比較牢固一點,下面這段是別人編的順口溜(原文鏈接:https://blog.csdn.net/HAN_789/article/details/131477285),要是記不住的話可以找下其他人的:

創建模式下: 工廠模式,原型模式,單例模式,建造者模式,抽象工廠模式

創公園,但見愁

結構模式:享元模式,外觀模式,組合模式,適配器模式,代理模式,裝飾模式,橋接模式

姐想外租,世代裝橋

行為模式:狀態模式,責任鏈模式 ,中介模式,模板方式模式,訪問者模式,解釋器模式,備忘錄模式,觀察者模式,策略模式,命令模式,迭代模式

行狀折中模仿,戒備觀測鳴笛

創公園,但見愁
姐想外租,世代裝橋

行狀折中模仿,戒備觀測鳴笛
————————————————

版權聲明:本文為博主原創文章,遵循 CC 4.0 BY 版權協議,轉載請附上原文出處鏈接和本聲明。? ? ? ? ? ?? ? ? ? ?

5.2 三種類型的模式?

? ? ? ? 創建型模式又分為對象創建型模式和類創建型模式。對象創建型模式處理對象的創建,類創建型模式處理類的創建。詳細的說,對象創建型模式把對象創建的一不過推遲到另一個對象中,而類創建模式將它的對象的創建推遲到子類中

? ? ? ? 結構型模式涉及如何組合類和對象以獲得更大的結構,即通過多個類個對象來實現更復雜的結構

? ? ? ? 行為型模式包括類行為模式和對象行為模式,用于描述程序在運行時復雜的流程控制,即描述多個類和對象之間怎樣相互協作共同完成單個對象都無法單獨完成的任務,它涉及算法與對象之間職責的分配

5.3 創建者模式

工廠方法Factory:

? ? ? ? 定義一個用于創建對象的接口,讓子類覺得將哪一個類進行實例化,使得一個類的實例化延遲到子類,

? ? ? ? 適用:

? ? ? ? 1.當一個類希望由它的子類來指定它所創建的對象時

? ? ? ? 2,當一個類不知道它所必須創建的對象的類的時候

? ? ? ? 3,當類將創建對象的職責托付給多個幫助子類中的某一個,并且希望將哪一個子類是代理者這一信息局部化

原型模式Prototype:

? ? ? ? 用原型實例指定創建對象的種類,并且通過拷貝這個原型來創建新的對象

? ? ? ? 適用:

? ? ? ? 1,當一個系統應該獨立于它的產品創建、構成、表示時

? ? ? ? 2,當要實例化的類是在運行時刻指定時,例如通過動裝載

? ? ? ? 3,為了避免創建一個與產品層次平行的工廠類層次時

? ? ? ? 4,當一個類的實例只能有幾個不同的狀態組合中的一種,建立相應數目的原型并克隆他們可能比每次用合適的狀態手工實例該類更加方便

? ? 單例設計模式singleleton:

????????保證一個類僅有一個實例,并提供訪問這個唯一實例的全局訪問點。

? ? ? ? 適用:

? ? ? ? 1,當類只能有一個實例而且客戶從一個總所周知的訪問點訪問它時、????????

? ? ? ? 2,當這個唯一實例應該是通過子類化可擴展的,并且客戶應該無需更改代碼就能拓展實例時

建造者Builder:

? ? ? ? 將一個復雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示

? ? ? ? 適用:

? ? ? ? 1,當創建復雜對象的算法應該獨立于該對象的組成部分以及他們的裝配方式時

? ? ? ? 2,當構造過程必須允許被構造的對象有不同的表示時

5.4 結構型模式

適配器模式:

? ? ? ? 適用:想使用一個已經存在的類,而它的接口不符合要求描述的是適配器

代理模式

? ? ? ? 通過提供與對象相同的接口來控制對這個對象的訪問,以使得在確實需要這個對象時才能對他進行創建和初始化

裝飾模式:

? ? ? ? 適用:在不影響其他對象的情況下,以動態透明的方式給單個對象添加職責描述

橋接模式Bridge:

? ? ? ? 判斷:該設計模式將抽象部分與實現部分分離(抽線于實現部分的關系是——>),使他們都可以獨立的變化

? ? ? ? 適用:不希望再抽象與實現部分之間有一個固定的判定關系的是橋接模式

????????基于類的最小設計原則,通過使用封裝、聚合以及繼承等行為讓不同的類承擔不同的職責。

5.5 行為性模式

狀態模式state:

????????允許一個對象在其內部狀態改變時改變它的行為,對象看起來似乎修改了它的類。如自動售賣機,根基狀態的不同可以又不同的行為? ??

責任鏈模式chain of responsibility:

????????通過給多個對象處理請求的機會,減少請求的發送者與接收者之間的耦合,將接收對象鏈接起來,在鏈中傳遞請求,直到有一個對象處理這個請求

? ? ? ? 適用:

? ? ? ? 1.有多個對象可以處理一個請求,哪個對象處理該請求運行時刻自動確定

? ? ? ? 2,想在不明確指定接收者的情況下向多個對象中的一個提交請求

? ? ? ? 3,可處理一個請求的對象集合應該被動態指定

中介者模式Mediator:

? ? ? ? 屬于行為型對象模式?。用一個中介對象來封裝一系列的對象交互,中介者使各個對象不需要顯示地相互調用,從而使其耦合松散,而且可以獨立地改變他們之間的交互。? ? ? ?

? ? ? ? 適用:

? ? ? ? 1,一組對象以定義良好但以復雜的方式進行通訊,產生的相互依賴關系結構混亂且難以理解

? ? ? ? 2,一組對象引用其他很多對象并且直接與這些對象通訊,導致難以復用該對象

? ? ? ? 3,想定制一個分布在多個子類中的行為,但又不想生成太多的子類

訪問者模式Vistor:

????????一個對象結構包含很多類對象,而系統要求這些類對象實施一些依賴于某具體類的操作;適用于,需要對一個對象結構中的對象進行很多不同的并且不相干的操作,它允許在不改變各元素的類的前提下定義作用于這些元素的新操作。如shoppig-car購物車有不同物品item,結賬方式有人工manual和自動auto,那么這個對象結構就包含很多item,依賴的具體類就是結賬checkout,使用checkout中的結賬方法結合不同的物品進行結賬。? ? ? ?

解釋器模式Interpreter:

????????給定一種語言,定義它的文法表示,并定義一個解釋器,該解釋器根據文法來解釋語言中的句子。

訪問者模式Visitor:

? ? ? ? 定義一對多的關系,當一個對象的狀態發生改變的時候,所有依賴它的對象都收到通知并自動更新

策略模式Strategy:

????????對于不同算法進行封裝和切換,使得算法可以獨立于使用他們的用戶的變化而變化,但調用策略的對象只有一個

? ? ? ? 適用:

命令模式Command:

????????將一個請求封裝為一個對象,從而可用不同的請求對客戶進行參數化,將請求排隊或記錄請求日志,支持撤銷的操作

? ? ? ? 適用:

迭代器模式Iterator:

????????提供一個方法來順序訪問一個聚合對象中各個對象的各個元素,而不是直接暴露改對象的內部表示? ? ? ? ? ?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/15988.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/15988.shtml
英文地址,請注明出處:http://en.pswp.cn/web/15988.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++語言學習(六)—— 類與對象(二)

目錄 一、對象數組 二、對象指針 三、this 指針 四、類類型作為參數類型的三種形式 4.1 對象本身作為參數 4.2 對象指針作為參數 4.3 對象引用作為參數 五、靜態成員 5.1 靜態數據成員 5.2 靜態成員函數 六、友元機制 6.1 友元函數 6.2 友元類 七、類的組合 八、…

【LakeHouse】Apache Iceberg + Amoro 助力網易構建云原生湖倉

Apache Iceberg Amoro 助力網易構建云原生湖倉 1.云原生湖倉背景與挑戰2.Apache Iceberg 、Amoro 與云原生2.1 Apache Iceberg2.2 Amoro 簡介 3.Apache Iceberg Amoro 云原生實踐3.1 云上湖倉案例一3.2 云上湖倉案例二3.3 云上湖倉案例三 4.Amoro 未來發展規劃 出品社區&…

【代碼隨想錄——回溯算法二周目】

1. 組合總和 var (path []intres [][]int )func combinationSum(candidates []int, target int) [][]int {path make([]int, 0)res make([][]int, 0)dfs(candidates,target,0,0)return res }func dfs(candidates []int, target int,tempTarget int,start int) {if tempTarg…

Django-auth組件

Django-auth組件 1 表結構 我們從python manage.py migrate為我們創建的auth組件內置的表開始看 auth_user&#xff1a;用戶表存儲用戶信息&#xff08;登錄admin后臺&#xff09; 里面的字段分兩類&#xff1a;用戶基本信息&#xff08;用戶名&#xff0c;郵箱&#xff0c;密…

華為OD機試【找出通過車輛最多顏色】(java)(100分)

1、題目描述 在一個狹小的路口&#xff0c;每秒只能通過一輛車&#xff0c;假設車輛的顏色只有 3 種&#xff0c;找出 N 秒內經過的最多顏色的車輛數量。 三種顏色編號為0 &#xff0c;1 &#xff0c;2。 2、輸入描述 第一行輸入的是通過的車輛顏色信息[0,1,1,2] &#xff0…

嵌入式0基礎開始學習 ⅠC語言(4)循環結構

0.問題引入 求0~100數據之和&#xff1a; int sum 0; sum 1234....100; 廢手&#xff0c;那么有沒有一種好的方法取操作呢&#xff1f; int sum 0; int i 1; sum sum i; // sum 01; …

GB28181協議中常用SDP信息的含義

u字段&#xff1a;u行應填寫視音頻文件的URI。該URI取值有兩種方式&#xff1a;簡捷方式和普通方式。簡捷方式直接采用產生該歷史媒體的媒體源&#xff08;如某個攝像頭&#xff09;的設備ID&#xff08;應符合6.1.2的規定&#xff09;以及相關參數&#xff08;如回放類型、下載…

Three.js——二維平面、二維圓、自定義二維圖形、立方體、球體、圓柱體、圓環、扭結、多面體、文字

個人簡介 &#x1f440;個人主頁&#xff1a; 前端雜貨鋪 ?開源項目&#xff1a; rich-vue3 &#xff08;基于 Vue3 TS Pinia Element Plus Spring全家桶 MySQL&#xff09; &#x1f64b;?♂?學習方向&#xff1a; 主攻前端方向&#xff0c;正逐漸往全干發展 &#x1…

在Mac電腦下怎么部署QAnything?

在Mac電腦下部署QAnything&#xff0c;可以選擇使用純Python環境進行部署&#xff0c;這種方式不依賴GPU&#xff0c;適合在Mac等筆記本電腦上運行。以下是基于QAnything的純Python環境安裝教程的步驟[18]&#xff1a; 安裝要求 Python 3.10&#xff08;建議使用Anaconda3來管…

RabbitMQ-默認讀、寫方式介紹

1、RabbitMQ簡介 rabbitmq是一個開源的消息中間件&#xff0c;主要有以下用途&#xff0c;分別是&#xff1a; 應用解耦&#xff1a;通過使用RabbitMQ&#xff0c;不同的應用程序之間可以通過消息進行通信&#xff0c;從而降低應用程序之間的直接依賴性&#xff0c;提高系統的…

功率電感的設計步驟

文章目錄 1&#xff1a;高導磁氣隙&#xff08;鐵氧體&#xff09;1.1設計原理1.2 設計步驟 2 鐵粉芯2.1&#xff1a;設計原理2.2&#xff1a;設計步驟 TI電感設計 學習視頻原鏈接 截圖 1 截圖1 截圖1 截圖 2 截圖2 截圖2 1&#xff1a;高導磁氣隙&#xff08;鐵氧體&#…

基于機器學習判斷面部微表情發現哪些人更容易診有帕金森病

1. 概述 帕金森病&#xff08;Parkinson’s disease&#xff0c;PD&#xff09;是一種慢性、進展性的神經退行性疾病&#xff0c;主要影響運動系統。該病癥以大腦中黑質致密部多巴胺能神經元的逐漸喪失為特征&#xff0c;導致多巴胺&#xff08;一種重要的神經遞質&#xff09…

【Qt】深入探索Qt窗口與對話框:從創建到管理:QDockWidget(浮動窗口)、QDialog(對話框)

文章目錄 前言&#xff1a;1. 浮動窗口2. 對話框介紹2.1. 示例&#xff1a;主窗口中&#xff0c;通過點擊按鈕&#xff0c;彈出一個新的對話框。2.2. 創建自定義對話框2.2.1. 純代碼的方式2.2.2. 圖形化界面的方式 3. 模態對話框 和 非模態對話框4. Qt 內置對話框4.1. 消息對話…

Nginx R31 doc-12-NGINX SSL Termination 安全加密

前言 大家好&#xff0c;我是老馬。很高興遇到你。 我們為 java 開發者實現了 java 版本的 nginx https://github.com/houbb/nginx4j 如果你想知道 servlet 如何處理的&#xff0c;可以參考我的另一個項目&#xff1a; 手寫從零實現簡易版 tomcat minicat nginx 系列 從零手…

Git Submodules:深入理解與應用

在大型項目或跨多個獨立項目的開發中&#xff0c;代碼管理往往變得復雜。Git Submodules 是 Git 提供的一個強大功能&#xff0c;允許你在一個 Git 倉庫&#xff08;稱為父倉庫&#xff09;中嵌套另一個 Git 倉庫&#xff08;稱為子模塊倉庫&#xff09;。本文將詳細介紹 Git S…

Linux/Windows下如何同時運行服務端和客戶端

假設服務端和客戶端程序分別為server.c和client.c注意順序&#xff01; 先運行服務端&#xff0c;后運行客戶端先結束客戶端&#xff0c;后結束客戶端 編譯 gcc -o server server.cgcc -o server client.c運行 # 先運行服務器 ./server# 再運行客戶端 ./client./表示當前目錄…

Hybrid Block Storage for Efficient Cloud Volume Service——論文泛讀

TOS 2023 Paper 論文閱讀筆記整理 問題 傳統桌面和服務器應用程序向云的遷移給底層云存儲帶來了高性能、高可靠性和低成本的挑戰。由于這些傳統應用程序的I/O模式和一致性要求&#xff0c;與采用特定編程模型和范式&#xff08;如MapReduce[22]和RDD[52]&#xff09;的云原生…

香橙派AIpro(OrangePi AIPro)開發板初測評

開發板簡介 最近&#xff0c;我拿到手一款Orange Pi AI Pro 開發板&#xff0c;它是香橙派聯合華為精心打造的高性能AI 開發板&#xff0c;最早發布于2023年12月&#xff0c;其搭載了昇騰AI 處理器&#xff0c;可提供8TOPS INT8 的計算能力&#xff0c;內存提供了8GB 和16GB兩…

基于jeecgboot-vue3的Flowable新建流程定義(一)

因為這個項目license問題無法開源&#xff0c;更多技術支持與服務請加入我的知識星球。 1、vue3版本因為流程分類是動態的&#xff0c;不再固定了&#xff0c;所以新建的時候需要選擇建立哪種流程類型的流程 代碼如下&#xff1a; <!-- 選擇模型的流程類型對話框 -->&…

算法提高之一個簡單的整數問題2

算法提高之一個簡單的整數問題2 核心思想&#xff1a;線段樹 懶標記&#xff1a;add存每個子節點需要加的數pushdown&#xff1a;將懶標記向下存 同時清除本行懶標記 #include <iostream>#include <cstring>#include <algorithm>using namespace std;type…