scala實現職責鏈模式

2021-09-02 12:23:20 字數 1681 閱讀 4778

package com.linewell.modeldesgin.responsechain

/*** 職責鏈模式,自我感覺和akka的管理機制很像

* created by ctao on 2015/8/30.

*//**

* 審批物件

* @param amount 金額

* @param number 編號

* @param purpose 採購目的

*/case class purchaserequest(amount: double, number: int, purpose: string)

/*** 抽象處理者,審批者類

* @param name 審批人姓名

*//**

* 定義後繼物件

*//**

* 設定後繼物件

*//**

* 抽象處理審批請求方法

* @param request 審批物件

*/def processrequest(request: purchaserequest): unit

}/**

* 主任類

* @param name 審批人姓名

*/override def processrequest(request: purchaserequest) = request.amount match

}/**

* 副董事長類

* @param name 審批人姓名

*/override def processrequest(request: purchaserequest) = request.amount match

}/**

* 董事長類

* @param name 審批人姓名

*/override def processrequest(request: purchaserequest) = request.amount match

}/**

* 董事會類

* @param name 審批人姓名

*/override def processrequest(request: purchaserequest) =

println("召開董事會審批採購單:" + request.number + ",金額:" + request.amount + "元,採購目的:" + request.purpose)

}package com.linewell.modeldesgin.responsechain

/*** 測試客戶端

* created by ctao on 2015/8/30.

*/zh.setsuccessor(yjy)

yjy.setsuccessor(wzx)

wzx.setsuccessor(meeting)

zh.processrequest(purchaserequest(45000, 1001, "大資料卡口專案"))

zh.processrequest(purchaserequest(60000, 1002, "伺服器購置"))

zh.processrequest(purchaserequest(145000, 1003, "星環開科技專利購買"))

zh.processrequest(purchaserequest(1145000, 1004, "公司併購"))

}

職責鏈模式(C 實現)

使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將這些物件連成一條鏈,並沿著這條鏈傳遞該請求,知道有乙個物件處理它為止。職責鏈模式 請求類 class request string requesttype string requestcontent int number 管理...

職責鏈模式 java實現

需求分析 你把今天你向經理申請,經理沒權利 然後向總監上報 總監也沒有許可權 向總經理上報的事 寫成 看看 不一定是加薪 也有可能是請假申請 public classrequestelseelseelse if request.gettype 加薪 request.getnumber 500 els...

職責鏈模式(c 實現)

目錄職責鏈模式 chain of responsibility 使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將這個物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理它為止。include class request include request.h reques...