摘要:
一、適配器模式的定義 適配器模式(Adapter)的定義如下:將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口,使得原本由于接口不兼容而不能一起工作的那些類能一起工作。 適配器模式分為類結(jié)構(gòu)型模式和對象結(jié)構(gòu)型模式兩種:在類適配器模式中,適配器與適配者之間是繼承(或?qū)崿F(xiàn))關(guān)系;在對象適配器模式中,適配器與適
閱讀全文
posted @ 2020-03-30 19:51
kosamino
閱讀(5462)
推薦(0)
摘要:
一、代理模式的定義 代理模式的定義:由于某些原因需要給某對象提供一個(gè)代理以控制對該對象的訪問。這時(shí),訪問對象不適合或者不能直接引用目標(biāo)對象,代理對象作為訪問對象和目標(biāo)對象之間的中介,代理模式也叫做委托模式。 二、為什么使用代理模式 中介隔離作用:在某些情況下,一個(gè)客戶類不想或者不能直接引用一個(gè)委托對
閱讀全文
posted @ 2020-03-30 04:51
kosamino
閱讀(3708)
推薦(1)
摘要:
一、原型模式的定義與特點(diǎn) 原型(Prototype)模式的定義如下:用一個(gè)已經(jīng)創(chuàng)建的實(shí)例作為原型,通過復(fù)制該原型對象來創(chuàng)建一個(gè)和原型相同或相似的新對象。它屬于創(chuàng)建型設(shè)計(jì)模式,用于創(chuàng)建重復(fù)的對象,同時(shí)又能保證性能(用這種方式創(chuàng)建對象非常高效)。 這種模式是實(shí)現(xiàn)了一個(gè)原型接口,該接口用于創(chuàng)建當(dāng)前對象的克
閱讀全文
posted @ 2020-03-30 02:05
kosamino
閱讀(3485)
推薦(0)
摘要:
一、建造者模式的定義與特點(diǎn) 建造者(Builder)模式的定義:指將一個(gè)復(fù)雜對象的構(gòu)造與它的表示分離,使同樣的構(gòu)建過程可以創(chuàng)建不同的表示,這樣的設(shè)計(jì)模式被稱為建造者模式。建造者模式屬于創(chuàng)建型設(shè)計(jì)模式,它是將一個(gè)復(fù)雜的對象分解為多個(gè)簡單的對象,使用多個(gè)簡單的對象一步一步構(gòu)建成一個(gè)復(fù)雜的對象。它將變與不
閱讀全文
posted @ 2020-03-30 00:02
kosamino
閱讀(1225)
推薦(0)
摘要:
工廠模式劃分來說總共有三類:簡單工廠模式、工廠方法模式和抽象工廠模式。其中簡單工廠模式不輸入23種設(shè)計(jì)模式之一,但他們又都屬于創(chuàng)建型模式。我們依次講解這三種工廠模式。 一、簡單工廠 1、什么是簡單工廠模式? 首先來說簡單工廠,簡單工廠模式,又叫做靜態(tài)工廠模式(Static Factory Metho
閱讀全文
posted @ 2020-03-29 22:25
kosamino
閱讀(13958)
推薦(2)
摘要:
一、什么是單例模式 單例模式的定義就是確保某一個(gè)類只有一個(gè)實(shí)例,并且提供一個(gè)全局訪問點(diǎn)。屬于設(shè)計(jì)模式三大類中的創(chuàng)建型模式。單例模式具有典型的三個(gè)特點(diǎn) 單例類只有一個(gè)實(shí)例對象; 該單例對象必須由單例類自行創(chuàng)建; 單例類對外提供一個(gè)訪問該單例的全局訪問點(diǎn); 類圖如下: 單例模式優(yōu)缺點(diǎn) 優(yōu)點(diǎn):由于單例模式
閱讀全文
posted @ 2020-03-29 04:00
kosamino
閱讀(2303)
推薦(1)
摘要:
在軟件開發(fā)中,為了提高軟件系統(tǒng)的可維護(hù)性和可復(fù)用性,增加軟件的可擴(kuò)展性和靈活性,程序員要盡量根據(jù)一些原則來開發(fā)程序,從而提高軟件開發(fā)效率、節(jié)約軟件開發(fā)成本和維護(hù)成本。 我們常見有 7 條原則,設(shè)計(jì)模式之禪這本書中概括為6原則,我們本博客就以7原則來進(jìn)行說明: 開閉原則 單一職責(zé)原則 里氏替換原則 依
閱讀全文
posted @ 2020-03-26 20:29
kosamino
閱讀(687)
推薦(0)
摘要:
我們以汽車分類管理程序?yàn)槔齺斫榻B合成復(fù)用原則的應(yīng)用。 分析:汽車按“動力源”劃分可分為汽油汽車、電動汽車等;按“顏色”劃分可分為白色汽車、黑色汽車和紅色汽車等。如果同時(shí)考慮這兩種分類,其組合就很多。如圖所示是用繼淨(jìng):關(guān)系實(shí)現(xiàn)的汽車分類的類圖。 從圖中可以看出用繼承關(guān)系實(shí)現(xiàn)會產(chǎn)生很多子類,而且增加新的
閱讀全文
posted @ 2020-03-26 20:28
kosamino
閱讀(1064)
推薦(0)
摘要:
如一個(gè)明星與經(jīng)紀(jì)人的關(guān)系實(shí)例。明星由于全身心投入藝術(shù),所以許多日常事務(wù)由經(jīng)紀(jì)人負(fù)責(zé)處理,如與粉絲的見面會,與媒體公司的業(yè)務(wù)洽淡等。這里的經(jīng)紀(jì)人是明星的朋友,而粉絲和媒體公司是陌生人,所以適合使用迪米特法則,其類圖如圖所示。 程序代碼如下: public class LoDtest { public
閱讀全文
posted @ 2020-03-26 20:14
kosamino
閱讀(936)
推薦(0)
摘要:
如本例學(xué)生成績管理程序,學(xué)生成績管理程序一般包含插入成績、刪除成績、修改成績、計(jì)算總分、計(jì)算均分、打印成績信息、査詢成績信息等功能,如果將這些功能全部放到一個(gè)接口中顯然不太合理,正確的做法是將它們分別放在輸入模塊、統(tǒng)計(jì)模塊和打印模塊等 3 個(gè)模塊中,其類圖如圖所示: 源碼如下: public cla
閱讀全文
posted @ 2020-03-26 19:39
kosamino
閱讀(661)
推薦(0)
摘要:
我們來寫一個(gè)關(guān)于司機(jī)開車的示例,假設(shè)我們現(xiàn)在有個(gè)司機(jī),可以開車,然后有一輛奔馳,于是就可以讓車跑起來。 public class Driver { // 司機(jī)職責(zé)就是駕駛汽車 public void drive(Benz benz) { benz.run(); } } public class Be
閱讀全文
posted @ 2020-03-26 19:06
kosamino
閱讀(565)
推薦(0)
摘要:
里氏替換原則強(qiáng)調(diào)的是設(shè)計(jì)和實(shí)現(xiàn)要依賴于抽象而非具體;子類只能去擴(kuò)展基類,而不是隱藏或者覆蓋基類,它包含4層含義. 一、里氏替換4原則 1、子類可以實(shí)現(xiàn)父類的抽象方法,但不能覆蓋父類的非抽象方法 子類可以實(shí)現(xiàn)父類的抽象方法,但不能覆蓋父類的非抽象方法,父類中凡是已經(jīng)實(shí)現(xiàn)好的方法(相對于抽象方法而言),
閱讀全文
posted @ 2020-03-26 16:10
kosamino
閱讀(3533)
推薦(1)
摘要:
以一個(gè)關(guān)于課程的例子展示開閉原則: /** * 定義課程接口 */ public interface ICourse { String getName(); // 獲取課程名稱 Double getPrice(); // 獲取課程價(jià)格 Integer getType(); // 獲取課程類型 } /
閱讀全文
posted @ 2020-03-26 15:41
kosamino
閱讀(3165)
推薦(2)
摘要:
說到WebSocket技術(shù),其實(shí)源于服務(wù)器推送技術(shù),在現(xiàn)實(shí)中很多時(shí)候需要的數(shù)據(jù)是不斷變化的,比如股市數(shù)據(jù)、聊天軟件,因此就需要一種客戶端想要在不刷新頁面的情況下實(shí)時(shí)獲取到服務(wù)器端最新數(shù)據(jù)的技術(shù),而以往的數(shù)據(jù)獲取都是基于客戶端主動請求,服務(wù)端返回對應(yīng)數(shù)據(jù)。因此就有了服務(wù)器推送技術(shù)。 服務(wù)器推送技術(shù)主要
閱讀全文
posted @ 2020-03-26 05:33
kosamino
閱讀(7890)
推薦(0)
摘要:
先附上GitHub地址:https://github.com/kosamino/netty-root/tree/master/ym-netty-rpc RPC的實(shí)現(xiàn)方式是本地通過遠(yuǎn)程代理對象調(diào)用遠(yuǎn)程服務(wù)。在互聯(lián)網(wǎng)應(yīng)用場景中,單體服務(wù)極度缺乏彈性伸縮能力,在大規(guī)模開發(fā)團(tuán)隊(duì)中也不便于開發(fā)管理。所以往往會
閱讀全文
posted @ 2020-03-26 03:37
kosamino
閱讀(663)
推薦(0)