前言 什么是設(shè)計(jì)模式? 設(shè)計(jì)模式是軟件設(shè)計(jì)人員、軟件開發(fā)人員在程序代碼編寫中總結(jié)出來的一套編碼規(guī)范,設(shè)計(jì)模式起一個(gè)指導(dǎo)作用,用來指導(dǎo)我們寫出高內(nèi)聚低耦合,具有良好的可擴(kuò)展性和可維護(hù)性的代碼。 為什么要學(xué)設(shè)計(jì)模式? 當(dāng)然,設(shè)計(jì)模式不是非學(xué)不可,不了解設(shè)計(jì)模式一樣可以在工作中寫出符合產(chǎn)品要求的功能。但是 ...
一、基礎(chǔ)介紹: 將一個(gè)復(fù)雜對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。 說白了就是將一個(gè)復(fù)雜的對象拆分成一個(gè)一個(gè)零件,然后按照既定順序和規(guī)則進(jìn)行組裝,最終形成這個(gè)相對復(fù)雜的對象。 具體可分為4個(gè)角色: Product(產(chǎn)品):復(fù)雜對象本身。 Builder(抽象建造者):既可以是 ...
本節(jié)介紹Util應(yīng)用框架對AspectCore AOP的使用. 概述 有些問題需要在系統(tǒng)中全局處理,比如記錄異常錯(cuò)誤日志. 如果在每個(gè)出現(xiàn)問題的地方進(jìn)行處理,不僅費(fèi)力,還可能產(chǎn)生大量冗余代碼,并打斷業(yè)務(wù)邏輯的編寫. 這類跨多個(gè)業(yè)務(wù)模塊的非功能需求,被稱為橫切關(guān)注點(diǎn). 我們需要把橫切關(guān)注點(diǎn)集中管理起來 ...
一、總體介紹: 工廠模式主要有三種類型:簡單工廠、工廠方法和抽象工廠,該模式用于封裝和管理對象的創(chuàng)建,是一種創(chuàng)建型模式。 萬物皆對象,創(chuàng)建對象時(shí)必然需要new該對象,當(dāng)需要更改對象時(shí),需要把項(xiàng)目中所有地方都修改一遍,這顯然違背了軟件設(shè)計(jì)的開閉原則。 如果使用工廠來生成對象,那么我們只需要跟工廠打交道 ...
退款業(yè)務(wù)強(qiáng)耦合到售后系統(tǒng)中,并且業(yè)務(wù)代碼分散到各個(gè)業(yè)務(wù)層,嚴(yán)重缺乏系統(tǒng)的領(lǐng)域邊界和分層設(shè)計(jì),重構(gòu)后退款業(yè)務(wù)邏輯不強(qiáng)依賴售后核心業(yè)務(wù)邏輯,做到可以獨(dú)立部署。 ...
一、基礎(chǔ)介紹: 確保一個(gè)類只有一個(gè)實(shí)例,并提供一個(gè)全局訪問點(diǎn)。 適用于需要頻繁實(shí)例化然后銷毀的對象,創(chuàng)建對象消耗資源過多,但又經(jīng)常用到的對象,頻繁訪問數(shù)據(jù)庫或文件的對象。 其本質(zhì)就是保證在整個(gè)應(yīng)用程序的生命周期中,任何一個(gè)時(shí)刻,單例類的實(shí)例都只存在一個(gè)。 特性和功能:確保一個(gè)類只有一個(gè)實(shí)例,并提供一 ...
OpenKey.Cloud 作為 ChatGPT 生態(tài)圈內(nèi)的重要基礎(chǔ)設(shè)施,提供官方 API 的轉(zhuǎn)發(fā),長久以來一直保持著高穩(wěn)定性,這是如何做到的?今天就來揭秘 OpenKey 系統(tǒng)的詳細(xì)架構(gòu)圖。 ...
一、基本介紹: 享元模式的定義:運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度的對象重復(fù)使用。適用于大量小粒度的對象造成的運(yùn)行效率和內(nèi)存使用效率低下的情況。 “享元”顧名思義,“享”共享的意思,“元”單元,最小對象,零部件的意思。 即從字面意思不難看出,該模式旨在共享一些零部件供其使用。 想要實(shí)現(xiàn)對這些零部件的重 ...
網(wǎng)關(guān)上的請求頭和響應(yīng)頭 當(dāng)您通過MSE網(wǎng)關(guān)將請求轉(zhuǎn)發(fā)到后端服務(wù)時(shí),在網(wǎng)關(guān)中添加的請求頭(例如 "hello")會在到達(dá)后端服務(wù)時(shí)一并發(fā)送給后端服務(wù)。您可以在后端服務(wù)中通過請求頭獲取該值。 當(dāng)您在MSE網(wǎng)關(guān)中添加響應(yīng)頭(例如 "good"),該響應(yīng)頭會在后端服務(wù)完成響應(yīng)之后,由MSE網(wǎng)關(guān)添加到響應(yīng)中。 ...
一、定義 為子系統(tǒng)中的一組接口提供一個(gè)一致的入口,外觀模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用。外觀模式是一種結(jié)構(gòu)型模式。 二、描述 包含以下兩個(gè)角色:1、Facade(外觀角色):在客戶端可以調(diào)用它的方法,在外觀角色中可以知道相關(guān)的(一個(gè)或多個(gè))子系統(tǒng)的功能和責(zé)任;在正常情況下, ...
非功能性需求是什么呢?保障系統(tǒng)持續(xù)健康運(yùn)轉(zhuǎn)的輔助需求。依然以電商系統(tǒng)的優(yōu)惠券為例,在促銷活動(dòng)期間發(fā)放大量優(yōu)惠券,如何防止用戶集中領(lǐng)券時(shí)系統(tǒng)不崩盤呢?活動(dòng)結(jié)束后,如何收縮服務(wù)器,節(jié)省服務(wù)器資源呢? 非功能性需求是面向運(yùn)維的,重要但是不太緊迫,有時(shí)候可以沒有操作界面,由架構(gòu)師提出解決方案,再推動(dòng)各個(gè)業(yè)務(wù)... ...
Kafka 介紹 Kafka 是一個(gè)開源的分布式流式平臺,它可以處理大量的實(shí)時(shí)數(shù)據(jù),并提供高吞吐量,低延遲,高可靠性和高可擴(kuò)展性。Kafka 的核心組件包括生產(chǎn)者(Producer),消費(fèi)者(Consumer),主題(Topic),分區(qū)(Partition),副本(Replica),日志(Log), ...
本文演示Util應(yīng)用框架開發(fā)的項(xiàng)目中如何編寫集成測試. 準(zhǔn)備 完成 Web Api 快速入門,本文將在之前生成的示例項(xiàng)目上講解集成測試的開發(fā). 測試概述 自動(dòng)化測試對于Util應(yīng)用框架的開發(fā)非常重要,它能保證基礎(chǔ)功能的穩(wěn)定性. 對于使用 Util 開發(fā)的業(yè)務(wù)項(xiàng)目,自動(dòng)化測試不是必須的,但掌握它可能很 ...
當(dāng)今社會,wifi 、無線網(wǎng)、wlan、熱點(diǎn),無時(shí)無刻不在影響著人們生活的方方面面。無論購物生活都離不開wifi,雖然目前無線網(wǎng)的普及率很高,流量資費(fèi)相對較低,但是仍然還有很大一部人人不能很方便的使用wifi無線網(wǎng)絡(luò)。很多人可以看到附近很多的wifi熱點(diǎn),但是卻無法使用,很惱火,然后就會去想辦法破解 ...
Telegram 宣布為其開發(fā)者提供了一項(xiàng)“能夠在 App 中運(yùn)行迷你應(yīng)用”的新功能( 迷你應(yīng)用即 Mini App,下文中以“小程序”代替)。 ...
一、定義 動(dòng)態(tài)地給一個(gè)對象增加一些額外的職責(zé)。就擴(kuò)展功能而言,裝飾模式提供了一種比使用子類更加靈活的替代方案。裝飾模式是一種結(jié)構(gòu)型模式。 二、描述 包含以下三個(gè)角色:1、Component(抽象構(gòu)件):它是具體構(gòu)件和抽象裝飾類的父類,聲明了在具體構(gòu)件中實(shí)現(xiàn)的業(yè)務(wù)方法,它的引入可以是客戶端以一致的方式 ...
幾年前,我被問到“你是如何變成一名架構(gòu)師的?”。基于這個(gè)話題,我們討論了很多,比如必要的技術(shù)、經(jīng)驗(yàn)以及所需要的知識儲備等。這一次討論促使我開始思考要成為一名架構(gòu)師應(yīng)該具備和學(xué)習(xí)的東西有哪些,成為一個(gè)優(yōu)秀的架構(gòu)師應(yīng)該具備哪些能力和做哪些事情。為此我查閱資料,走訪各位大佬,當(dāng)然也結(jié)合自己的經(jīng)歷,最終我輸 ...
翻出老物件,搭建一個(gè)簡單的 IOT 開發(fā)環(huán)境,也算是廢物利用了 ,接下來加傳感器。1. STM32 采集數(shù)據(jù): RTOS。 資源相對比較豐富,可以根據(jù)項(xiàng)目需求定制。2. ESP32 網(wǎng)絡(luò)傳輸(AT固件 MQTT協(xié)議) : AT:封裝好的接口,擴(kuò)展性不是那么好,業(yè)務(wù)簡單的話將就可以用。 SDK:接口比 ...
Nexus配置 接上一篇 Nexus安裝:http://www.rzrgm.cn/huzccc/p/17773901.html 倉庫類型 倉庫類型 說明 proxy 代理到遠(yuǎn)程倉庫,默認(rèn)國外,可以修改為國內(nèi)阿里云代理 group 存放:通過 Nexus 獲取的第三方 jar 包 hosted ...
大家好,歡迎來到程序視點(diǎn)!今天要分享的是工廠模式的最后一種模式:抽象工廠模式。 ? 前言 在上一篇文章:設(shè)計(jì)模式之工廠方法模式 最后,我們通過示例展示了兩個(gè)問題。歸納起來就是: 每次增加一個(gè)產(chǎn)品時(shí),都需要增加一個(gè)具體類和一個(gè)對象實(shí)現(xiàn)工廠。 隨著產(chǎn)品類的增多,使得系統(tǒng)中類的個(gè)數(shù)成倍增加,在一定程度上增 ...