設計模式
文章平均质量分 86
設計模式相關知識
林cc
这个作者很懒,什么都没留下…
展开
-
Java 設計模式 - 享元模式
Java 設計模式 - 享元模式享元模式前言模式概述模式結構模式具體應用優缺點享元模式前言在面向對象程序設計過程中,有時會面臨要創建大量相同或相似對象實例的問題。創建那麽多的對象將會耗費很多的系統資源,它是系統性能提高的一個瓶頸。例如,圍棋和五子棋中的黑白棋子,教室裏的桌子和凳子等。這些對象有很多相似的地方,如果能把它們相同的部分提取出來共享,則能節省大量的系統資源,這就是享元模式的產生背景。模式概述享元(Flyweight)模式的定義:運用共享技術來有效地支持大量細粒度對象的復用。它通過共享原创 2021-06-20 15:31:22 · 88 阅读 · 2 评论 -
Java 設計模式 - 外觀模式
Java 設計模式 - 外觀模式外觀模式前言模式概述模式結構模式具體應用優缺點外觀模式前言在現實生活中,常常存在辦事較復雜的例子,如辦房產證或註冊一家公司,有時要與多個部門聯系,這時要是有一個綜合部門能解決一切手續問題就好了。軟件設計也是這樣,當一個系統的功能越來越強,子系統會越來越多,客戶對系統的訪問也變得越來越復雜。這時如果系統內部發生改變,客戶端也要跟著改變,這違背了“開閉原則”,也違背了“迪米特法則”。所以有必要為多個子系統提供一個統一的接口,從而降低系統的耦合度,這就是外觀模式的目標。模式原创 2021-06-19 11:39:11 · 86 阅读 · 0 评论 -
Java 設計模式 - 裝飾器模式
Java 設計模式 - 裝飾器模式裝飾器模式前言模式概述模式結構模式具體應用優缺點裝飾器模式前言上班族大多都有睡懶覺的習慣,每天早上上班時間都很緊張,於是很多人為了多睡一會,就會用方便的方式解決早餐問題。有些人早餐可能會吃煎餅,煎餅中可以加雞蛋,也可以加香腸,但是不管怎麽“加碼”,都還是一個煎餅。在現實生活中,常常需要對現有產品增加新的功能或美化其外觀,如房子裝修、相片加相框等,都是裝飾器模式。在軟件開發過程中,有時想用一些現存的組件。這些組件可能只是完成了一些核心功能。但在不改變其結構的情況下,可以原创 2021-06-19 00:06:27 · 80 阅读 · 0 评论 -
Java 設計模式 - 橋接模式
Java 設計模式 - 橋接模式橋接模式前言模式概述模式結構模式具體應用優缺點橋接模式前言在現實生活中,某些類具有兩個或多個維度的變化,如圖形既可按形狀分,又可按顏色分。如何設計類似於 Photoshop 這樣的軟件,能畫不同形狀和不同顏色的圖形呢?如果用繼承方式,m 種形狀和 n 種顏色的圖形就有 m*n 種,不但對應的子類很多,而且擴展困難。當然,這樣的例子還有很多,如不同顏色和字體的文字、不同品牌和功率的汽車、不同性別和職業的男女、支持不同平臺和不同文件格式的媒體播放器等。如果用橋接模式就能很好原创 2021-06-18 01:02:17 · 83 阅读 · 5 评论 -
Java 設計模式 - 組合模式
Java 設計模式 - 組合模式組合模式前言模式概述模式結構透明式安全式模式具體應用透明式安全式優缺點組合模式前言在現實生活中,存在很多“部分-整體”的關系,例如,大學中的部門與學院、總公司中的部門與分公司、學習用品中的書與書包、生活用品中的衣服與衣櫃、以及廚房中的鍋碗瓢盆等。在軟件開發中也是這樣,例如,文件系統中的文件與文件夾、窗體程序中的簡單控件與容器控件等。對這些簡單對象與復合對象的處理,如果用組合模式來實現會很方便。模式概述組合(Composite Pattern)模式的定義:有時又叫作原创 2021-06-16 16:47:40 · 85 阅读 · 1 评论 -
Java 設計模式 - 適配器模式
Java 設計模式 - 適配器模式適配器模式前言模式概述模式結構模式具體應用類適配器模式對象適配器模式優缺點適配器模式前言在現實生活中,經常出現兩個對象因接口不兼容而不能在一起工作的實例,這時需要第三者進行適配。例如,講中文的人跟講英文的人對話時需要一個翻譯,用直流電的筆記本電腦接交流電源時需要一個電源適配器等。在軟件設計中也可能出現:需要開發的具有某種業務功能的組件在現有的組件庫中已經存在,但它們與當前系統的接口規範不兼容,如果重新開發這些組件成本又很高,這時用適配器模式能很好地解決這些問題。模式原创 2021-06-15 02:04:39 · 495 阅读 · 0 评论 -
Java 設計模式 - 模板方法模式
Java 設計模式 - 模板方法模式模板方法模式前言模式概述模式結構模式具體應用優缺點模板方法模式前言在面向對象程序設計過程中,我們常常會遇到這種情況:設計一個系統時知道了算法所需的關鍵步驟,而且確定了這些步驟的執行順序,但某些步驟的具體實現還不知道,或者說某些步驟的實現與具體的環境相關。例如,去銀行辦理業務一般要經過以下 4 個流程:取號、排隊、辦理具體業務、對銀行工作人員進行評分。其中取號、排隊和對銀行工作人員進行評分的業務對每個客戶是一樣的,可以在父類中實現,但是辦理具體業務卻因人而異,也因不同原创 2021-06-14 15:55:01 · 1086 阅读 · 1 评论 -
Java 設計模式 - 中介者模式
Java 設計模式 - 中介者模式模式概述模式結構模式適用場景模式具體應用優缺點模式概述在實際開發中,有可能建了很多個類,而這些類又需要互相引用,當項目變得龐大時,很容易造成引用關係過於複雜的情況。這時候我們就可以應用上中介者模式。中介者模式中,所有的相關對象都通過中介者對象來通信,而不是直接互相引用,所以當一個對象發生改變時,只需要通知中介者對象即可,不會造成太多的影響,因為沒有把直接的類引用直接硬編碼在其他類當中。模式結構中介者模式下通常會包含以下角色:角色描述抽象中介者原创 2021-06-13 23:34:52 · 121 阅读 · 0 评论 -
Java 設計模式 - 命令模式
Java 設計模式 - 命令模式模式概述模式結構模式適用場景模式具體應用模式概述在軟件系統中,系統中,“行為請求者” 與 “行為實現者” 往往呈現一種緊耦合的關係,但是在某些場合,比如希望對事務做撤銷,或是重做等操作,那麼這種緊耦合的結構是不合適的。命令模式就是為了因應這種需求,將 “行為請求者” 與 “行為實現者” 解耦,將一組行為抽象成對象,實現二者之間的松耦合。模式結構命令模式下通常會包含以下角色:角色職責抽象命令類(AbstractCommand)定義命令的接口,執原创 2021-04-30 15:44:16 · 91 阅读 · 1 评论 -
Java 設計模式 - 狀態模式
Java設計模式-狀態模式模式動機模式定義模式結構與分析場景代碼實現優缺點模式動機在很多情況下,一個對象的行為取決於一個或多個動態變化的屬性,這樣的屬性稱為 “狀態”,這樣的對象叫做有狀態(stateful)的對象。這樣的對象狀態是從一系列預先定義好的值中取出來的,而當這樣的一個對象跟外部產生互動時,其內部狀態就會改變,從而使系統的行為也發生變化。模式定義不管怎樣,我們還是都要來看看狀態模式的定義:狀態模式允許其內部狀態改變時改變對象本身的行為,對象看起來好像是修改了他的類。模式結構與分析原创 2021-03-27 21:50:15 · 119 阅读 · 0 评论 -
Java 設計模式 - 建造者模式
Java設計模式-建造者模式動機什麼是建造者模式?具體實現實現 (Director + Builder + Product)動機既然本篇的主角的設計模式叫做建造者模式,想必大家都會想到建築工人。比如,在建造一棟茅草屋,或是建造一棟水泥房時,其實過程都是一樣的,只是也許用到的材料不同。比如第一步都是要先打好地基(茅草屋用工具,水泥屋用機器),第二步可能是要建立好框架(茅草屋用樹木,水泥屋用混凝土),第三步才開始建造房屋(茅草屋用茅草,水泥屋用水泥)。可以看到,其實過程都是一樣的,只是材料不同罷了。軟件原创 2021-03-16 23:29:44 · 98 阅读 · 2 评论 -
Java 設計模式 - 策略模式
Java設計模式-策略模式什麼是策略模式?策略模式的結構代碼實現實際案例特點優缺點什麼是策略模式?在阎宏博士的《JAVA与模式》中,對於策略模式是這麼描述的:策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式的結構策略模式其實是對「算法」進行包裝的,是把使用算法的工作和算法本身分離開的,委託給不同對象管理。策略模式的做法通常是把一系列的算法都包裝到一系列的策略類原创 2021-03-09 00:52:34 · 105 阅读 · 0 评论 -
Java 設計模式 - 觀察者模式
Java設計模式-觀察者模式什麼是觀察者模式?觀察者模式的結構代碼實現實際案例什麼是觀察者模式?首先先來看看一個對於觀察者模式一個經典的描述,出自於阎宏博士的 《JAVA與模式》:观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,原创 2021-03-07 00:42:14 · 135 阅读 · 0 评论 -
Java 設計模式 - 單例模式
Java設計模式-單例模式什麼是單例模式?四種實現餓漢式懶漢式Synchronized 實例化加鎖Double Check + Volatile 雙重檢測靜態內部類式枚舉單例什麼是單例模式?單例模式就是說,確保某一個類只有一個實例,並且提供一個全局訪問點。單例模式總體來說就是 3 個特點:只有一個實例自我實例化提供全局訪問點UML 圖如下,應該很清楚的:優點由於只有一個實例,所以能夠節省系統資源,減少性能開銷,提供效率等等,同時也能夠嚴格限制用戶對它的訪問。缺點也正因原创 2021-03-05 10:40:13 · 94 阅读 · 1 评论 -
Java 設計模式 - 工廠模式
Java設計模式-工廠模式工廠模式簡單工廠模式工廠方法模式抽象工廠模式工廠模式設計模式可以說是非常重要的一個部分,許多大牛都說,設計模式是一個進階程序員必備的。總共有 23 種設計模式,這篇就先來介紹工廠模式。簡單工廠模式簡單工廠模式,也叫工廠模式,是最簡單的一種工廠模式,簡單來說,就是當你需要一個對象的時候,通常我們就是用 new 關鍵字 new 出來一個實例,但是這樣我們的代碼耦合度太高了,且不易於擴展,因此,我們要利用一個工廠來為我們生產出對象。我們直接來看一個例子,在場景中理解簡單工廠模原创 2021-03-04 18:24:35 · 165 阅读 · 3 评论