一、引言 在上一篇文章介紹到可以使用狀態者模式和觀察者模式來解決中介者模式存在的問題,在本文中將首先通過一個銀行賬戶的例子來解釋狀態者模式,通過這個例子使大家可以對狀態者模式有一個清楚的認識,接着,再使用狀態者模式來解決上一篇文章中提出的問題。 二、狀態者模式的介紹 每個對象都有 ...
一 引言 今天我們開始講 行為型 設計模式的第六個模式,該模式是 狀態模式 ,英文名稱是:State Pattern。無論是現實世界,還是面向對象的OO世界,里面都有一個東西,那就是對象。有對象當然就有狀態了。每個對象都有其對應的狀態,而每個狀態又有對應一些相應的行為,在不同狀態下,行為的的方式也是不一樣。如果某個對象有多個狀態時,那么就會有很多對應的行為。那么對這些狀態的判斷和根據狀態完成的行為 ...
2017-12-13 14:28 3 2940 推薦指數:
一、引言 在上一篇文章介紹到可以使用狀態者模式和觀察者模式來解決中介者模式存在的問題,在本文中將首先通過一個銀行賬戶的例子來解釋狀態者模式,通過這個例子使大家可以對狀態者模式有一個清楚的認識,接着,再使用狀態者模式來解決上一篇文章中提出的問題。 二、狀態者模式的介紹 每個對象都有 ...
引言 我們在編程的時候,有時候會遇到,一個對象的行為動作會由對象的狀態來決定的,也就是對象的行為是由狀態來決定,如果對象的狀態很多,那么也會由很多不同的行為,這時候我們一班會 if –else if—來判斷對象的行為,當對象的行為或者狀態發生變化時,就需要更改之前的代碼,這樣的設計就違背了開閉原則 ...
狀態模式 State 人有喜怒哀樂,海綿寶寶也會有不同的時候,也會有不同的心情~ 問題:上圖中,如果跟海綿寶寶開玩笑,那種情況最可能被打? 看下面一個示例,演示了java中的多態特性 類A有方法action ...
一、引言 今天我們開始講“行為型”設計模式的第八個模式,該模式是【職責鏈模式】,英文名稱是:Chain of Responsibility Pattern。讓我們看看現實生活中的例子吧,理解起來可能更容易。我們看看某公司的采購流程吧。某公司的規章制度規定,采購原材料的總價在5萬之內,只需要 ...
一、引言 今天我們開始講“行為型”設計模式的第五個模式,該模式是【中介者模式】,英文名稱是:Mediator Pattern。還是老套路,先從名字上來看看。“中介者模式”我第一次看到這個名稱,我的理解是,在兩個對象中間增加一個“中間對象”,“中間對象”協調兩個對象的關系,但是隨着理解的深入 ...
一、引言 今天我們開始講“行為型”設計模式的第二個模式,該模式是【命令模式】,又稱為行動(Action)模式或交易(Transaction)模式,英文名稱是:Command Pattern。還是老套路,先從名字上來看看。“命令模式”我第一次看到這個名稱,我的理解是,可能是一種行為或者一個操作 ...
一、引言 “結構型”的設計模式已經寫完了,從今天我們開始講“行為型”設計模式。現在我們開始講【行為型】設計模式的第一個模式,該模式是【模板方法】,英文名稱是:Template Method Pattern。還是老套路,先從名字上來看看。“模板方法”我第一次看到這個名稱,我的理解是,有一個方法 ...
一、引言 今天我們開始講“行為型”設計模式的第七個模式,該模式是【策略模式】,英文名稱是:Stragety Pattern。在現實生活中,策略模式的例子也非常常見,例如,在一個公司中,會有各種工作人員,比如:有的是普通員工,有的是軟件架構師,有的是部門經理,當然也會有公司的CEO。這些工作人員 ...