設計模式漫談之責任鏈

2022-07-17 04:27:15 字數 1607 閱讀 2048

這段時間談戀愛了,也就沒更新隨筆。後天就軟考了,不過我已經抱著失敗是成功他媽的準備了。做軟體不能急,要穩著性子做幾年再說,剛畢業的應屆生啥都想學,老想一口吃個胖子,沒有5年以上的工作經驗,就是再nb也不行,搞技術的要有工匠精神,而工匠精神必須沉浸下去搞很多年技術。沒有耐心研究技術,貪多求快,這樣不適合做技術,適合投機倒把。

在物件導向中,引用型別最重要,因為引用型別變數相當於指標變數,存的是物件的位址,(單型別存乙個,集合型別存多個),new後的物件是分配位址的。只要能表示乙個位址的表示式都可以給這個指標變數。

不能創造物件的型別,比如抽象類,介面等,不用考慮,考慮的物件都是有空間的(但是要把繼承的成員帶入物件空間中),靜態的要考慮類空間。

設計類考慮類空間,執行時考慮物件空間及類空間。物件包括了資料和演算法,這應該是物件的職責(靜態+動態)假如自身資料不夠的話,可以從其他物件中獲取。

繼承的物件要對基類的建構函式,抽象成員,介面成員負責。

所謂的責任鏈,就是物件處理負責的事,也能**不負責的事。能**的話就必須存其他能處理**責任的物件引用。

還是直接上例子,我來解釋吧。

//抽象的類無物件空間,只做邏輯設計

abstract class manager

public void setsuperior(manager superior)

//繼承物件

class commonmanager : manager}}

//繼承物件

class majordomo : manager

}//資料的宿主類

class request

set

}private string requestcontent;

public string requestcontent

set

}private int number;

public int number

set }}

//物件空間

commonmanager jinli = new commonmanager("金利");

//物件空間

majordomo zongjian = new majordomo("宗劍");

//物件空間

generalmanager zhongjingli = new generalmanager("鐘精勵");

//存其他物件的引用

jinli.setsuperior(zongjian);

zongjian.setsuperior(zhongjingli);

//資料物件

request request = new request();

request.requesttype = "請假";

request.requestcontent = "小菜請假";

request.number = 1;

總結,每次我都要說,程式設計,靠的是悟性,是思想。責任鏈,關鍵是一類物件,能關聯到一起處理乙個業務。物件與物件的關聯靠的就是乙個物件存另乙個物件的引用。(即能找到另乙個物件空間)。把物件,類,轉換成空間的概念,這就是程式設計思想。

快12點了,不說了,我女朋友就說要我早點休息,在合適的時間遇見對的人,一定要珍惜,抓住機會,這輩子就會幸福。

晚安,同行們!

設計模式之 責任鏈模式

在一些情況下,對乙個訊息 含事件 的響應和處理需要很多物件來參與,這些物件對訊息的處理有前後順序,形成乙個處理鏈條,但物件是否真正處理訊息有賴於在它之前的物件的處理策略,前乙個物件處理後,後乙個物件則不需參與處理,這就是責任鏈模式。現實中有很多類似的場景,比如上訪,上訪一般是從最基層的信訪部門接受信...

設計模式之(責任鏈模式)

chain of responsibleity 責任鏈模式 在責任鏈模式 中,很多物件由每乙個物件對其下家的引用而接。起來形成一條鏈。請求在這個鏈上傳遞,直到鏈上的某乙個物件決定處理此請求。客戶並不知道鏈上的哪乙個物件最終處理這個請求,系統可以在不影響客戶端的情況下動態的重新組織鏈和分配責任。處理者...

設計模式之責任鏈模式

假設現在乙個公司的請假流程如下 一天及以下由小組組長審批,一天以上三天以下由經理審批,三天以上七天以下由老闆審批,七天以上直接勸退。如果每次請假時都很長的if else 來判斷該去找誰請假,很不容易擴充套件,我們使用責任鏈模式來實現。首先,是乙個抽象的父類 public abstract class...