當前位置:首頁 » 堅守職責 » 職責鏈

職責鏈

發布時間: 2020-11-29 11:49:46

㈠ 用java代碼實現責任鏈模式的骨幹代碼

//----------------先寫了個,功能是實現了,有待改進-----------
import java.util.ArrayList;
import java.util.List;

/**
* 現有List<SourceBean>類型的List對象,
* 現在需要將該List對象中a是奇數或者b>100的對象過濾掉,
* 請用責任鏈模式實現此段代碼。
* @author Administrator
*
*/
public class Chain_test1 {

public static void main(String[] args) {
List<SourceBean> list = new ArrayList<SourceBean>();
SourceBean bean1 = new SourceBean(1, 100);
SourceBean bean2 = new SourceBean(2, 200);
SourceBean bean3 = new SourceBean(3, 100);
SourceBean bean4 = new SourceBean(4, 100);
SourceBean bean5 = new SourceBean(5, 20);
SourceBean bean6 = new SourceBean(6, 200);
list.add(bean1);
list.add(bean2);
list.add(bean3);
list.add(bean4);
list.add(bean5);
list.add(bean6);
System.out.println("過濾前List中的內容");
printList(list);
// 裝配 鏈條
Filter oddFilter = new OddFilter();
//為了保持Filter裡面的邏輯不混亂,OddFilter僅過濾奇數,CompareFilter僅僅過濾b>100
//這里對奇數過濾兩次,
//即,過濾掉b>100和a是奇數 共存的情形
Filter oddFilter2 = new OddFilter();
Filter compareFilter = new CompareFilter();
oddFilter.setFilter(null);
compareFilter.setFilter(oddFilter);
oddFilter2.setFilter(compareFilter);
// 進行過濾
oddFilter2.doFilter(list);
System.out.println("\n過濾後List中的內容");
printList(list);
}
public static void printList(List<SourceBean> list){
for(SourceBean s: list){
System.out.print(s.toString());
}
}

}

class Filter{
private Filter filter;

public void doFilter(List<SourceBean> list){
if (filter != null){
filter.doFilter(list);
}else{
System.out.println("處理結束");
}
}

public void setFilter(Filter filter){
this.filter = filter;
}
}

/**
* 僅僅過濾b>100
*/
class CompareFilter extends Filter{
public void doFilter(List<SourceBean> list){
for(int i= 0; i< list.size(); i++){
if(list.get(i).getB() > 100 ){//b>100
list.remove(i);//移除該對象
}else{//交給其他Filter處理
super.doFilter(list);
}
}
}
}

/**
* 僅過濾a為奇數
*/
class OddFilter extends Filter{
public void doFilter(List<SourceBean> list){

for(int i= 0; i< list.size(); i++){
if(list.get(i).getA() % 2 != 0){//非偶數
list.remove(i);//移除該對象
}else{//交給其他Filter處理
super.doFilter(list);
}
}

}
}

class SourceBean {
private int a;
private int b;

public SourceBean(int a, int b){
this.a = a;
this.b = b;
}
public SourceBean(){
}

public String toString(){
return "[a="+a+", b="+b+"] ";
}

public int getA() {
return a;
}

public void setA(int a) {
this.a = a;
}

public void setB(int b) {
this.b = b;
}

public int getB() {
return b;
}
}
//------------------------執行結果----------------------------
過濾前List中的內容
[a=1, b=100] [a=2, b=200] [a=3, b=100] [a=4, b=100] [a=5, b=20] [a=6, b=200]
過濾後List中的內容
[a=4, b=100]

㈡ 深入淺出:什麼是基於Java的責任鏈模式

1、責任鏈模式就是這種「推卸」責任的模式,你的問題在我這里能解決我就解決,不行就把你推給另一個對象。至於到底誰解決了這個問題了呢?我管呢!
2、責任鏈模式由兩個角色組成:
1) 抽象處理者角色(Handler):它定義了一個處理請求的介面。當然對於鏈子的不同實現,也可以在這個角色中實現後繼鏈。
2) 具體處理者角色(Concrete Handler):實現抽象角色中定義的介面,並處理它所負責的請求。如果不能處理則訪問它的後繼者。
至於類圖不放也罷。畢竟就是一個繼承或者實現。
3、從名字上大概也能猜出這個模式的大概模樣——系統中將會存在多個有類似處理能力的對象。當一個請求觸發後,請求將在這些對象組成的鏈條中傳遞,直到找到最合適的「責任」對象,並進行處理。
《設計模式》中給它的定義如下:使多個對象都有機會處理請求,從而避免請求的發送者和接收者之間的耦合關系。將這些對象連成一條鏈,並沿著這條鏈傳遞該請求,直到有一個對象處理它為止。
從定義上可以看出,責任鏈模式的提出是為了「解耦」,以應變系統需求的變更和不明確性。
下面是《設計模式》中給出的適用范圍:
1) 有多個的對象可以處理一個請求,哪個對象處理該請求運行時刻自動確定。
2) 你想在不明確指定接收者的情況下,向多個對象中的一個提交一個請求。
3) 可處理一個請求的對象集合應被動態指定。

㈢ BCHC區塊鏈在社會的責任是什麼

在中心化的電商平台之上,用戶資料庫是最重要的資產,通過用戶購買等行為的層層轉化,最終實現價值:

但在分布式經濟之中,價值驅動的源頭卻不再是中心化的某個機構,而是社區,

社區中的價值傳遞也不再依賴於傳統的集中化系統。如分布式電商網路BitCherry,

通過打造包括商家、消費者、超級節點與平台等不同角色的生態,利用「消費即挖礦」等模式實現生態增值,由此公平獲利。

㈣ 責任鏈設計模式為什麼使用抽象類

抽象類提高代碼復用能力 行為的抽象,是規則,介面,(是特殊的個性) 事物的抽象,是共性,是抽象類(是一般的共性) 剛學Java語言時,就很難理解為什麼要有介面這個概念,雖說是可以實現所謂的多繼承,可一個只有方法名,沒有方法體的東西

㈤ java 哪些框架用到了責任鏈模式

import java.io.*;
class PurchaseRequest{

public double Amount;
public int Number;
public String Purpose;
};

class Approver{

public Approver(){ successor=null;}

public void ProcessRequest(PurchaseRequest aRequest){
if(successor!=null){ successor.ProcessRequest(aRequest);}
}

public void SetSuccessor(Approver aSuccessor) { successor=aSuccessor;}

private Approver successor;

};

class Congress extends Approver {

public void ProcessRequest(PurchaseRequest aRequest){
if(aRequest.Amount<500000){
System.out.println("Congress is processing");
}
else super.ProcessRequest(aRequest);
}
}

class President extends Approver {

public void ProcessRequest(PurchaseRequest aRequest){
if(aRequest.Amount>=500000){
System.out.println("President is processing");
}
else super.ProcessRequest(aRequest);
}
}

class VicePresident extends Approver {

public void ProcessRequest(PurchaseRequest aRequest){
if(aRequest.Amount<100000){
System.out.println("VicePresident is processing");
}
else super.ProcessRequest(aRequest);
}
}

class Director extends Approver {

public void ProcessRequest(PurchaseRequest aRequest){
if(aRequest.Amount<50000){
System.out.println("Director is processing");
}
else super.ProcessRequest(aRequest);
}
}

public class rs
{
public static void main(String[] args) throws IOException {
Congress Meeting = new Congress();
President Tammy = new President();
VicePresident Sam = new VicePresident();
Director Larry = new Director();
//Construct Chain of Responsibility
Meeting.SetSuccessor(null);
Tammy.SetSuccessor(Meeting);
Sam.SetSuccessor(Tammy);
Larry.SetSuccessor(Sam);

PurchaseRequest aRequest = new PurchaseRequest();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
aRequest.Amount=Double.parseDouble(br.readLine());
Larry.ProcessRequest(aRequest);
}
}

㈥ 設計模式中,責任鏈模式和裝飾者的異同,以及鏈條裝配的背後原理(代碼部分用java來描述)

推薦看一下:電子工業出版 鄭阿奇老師的《軟體秘笈-設計模式那點事》!裡面含有相似設計模式的對比分析和java源碼實現,實例通俗易懂,模式分析 靜態類圖看了一目瞭然!希望對你有幫助!

㈦ org.apache.log4j.logger用的是責任鏈模式嗎

比如是Apache Tomcat 的對Encoding的 處理,Struts2 的攔截器, jsp servlet 的Filter 等等,都是基於責任鏈模式設計的。

㈧ 疼你的責任鏈接地址

這個在我的電腦上播放一點都不卡
你去試試
如果卡的話版就是你網速的問權題了
http://www.happyvalley.com.cn/activity/mp3/tengnidezheren.mp3

㈨ 供應鏈內部顧問的職責是什麼

供應鏈內部顧問就是為企業提供供應鏈管理方案方面的咨詢,整合並優化供應商、製造商、零售商的業務效率,使商品以正確的數量、正確的品質、在正確的地點、以正確的時間、最佳的成本進行生產和銷售,從而達到有效性管理,使企業保證競爭優勢,是一個頗具挑戰性的職業。

熱點內容
影視轉載限制分鍾 發布:2024-08-19 09:13:14 瀏覽:319
韓國電影傷口上紋身找心裡輔導 發布:2024-08-19 09:07:27 瀏覽:156
韓國電影集合3小時 發布:2024-08-19 08:36:11 瀏覽:783
有母乳場景的電影 發布:2024-08-19 08:32:55 瀏覽:451
我准備再看一場電影英語 發布:2024-08-19 08:14:08 瀏覽:996
奧迪a8電影叫什麼三個女救人 發布:2024-08-19 07:56:14 瀏覽:513
邱淑芬風月片全部 發布:2024-08-19 07:53:22 瀏覽:341
善良媽媽的朋友李采潭 發布:2024-08-19 07:33:09 瀏覽:760
哪裡還可以看查理九世 發布:2024-08-19 07:29:07 瀏覽:143
看電影需要多少幀數 發布:2024-08-19 07:23:14 瀏覽:121