国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java設計模式編程中的責任鏈模式使用示例

Java設計模式編程中的責任鏈模式使用示例

2020-04-25 15:48匆忙擁擠repeat JAVA教程

這篇文章主要介紹了Java設計模式編程中的責任鏈模式使用示例,責任鏈模式可以避免很多請求的發送者和接收者之間的耦合關系,需要的朋友可以參考下

責任鏈模式:多個對象由其對象對應下家的引用連成一條鏈,請求在這個鏈上傳遞,直到 鏈上的某一個接收對象處理此請求。因為請求的客戶端并不知道鏈上最終是誰來處理這個請求,使得系統可以在不影響客戶端的情況下動態地重新組織和分配責任, 從而避免了請求發送者與請求處理者之間的耦合。
責任鏈械中涉及到三種角色:
1,抽象處理者角色
2,具體處理者角色
3,請求發送者
小例子:假設去買房子,買房子就需要砍價, 賣房的人職位不同,可以優惠的價格也不同,不同職位就可以形成一個處理請求的鏈。我們暫定: * 基層銷售員,只能優惠3% * 銷售經理:可以優惠5% * 銷售總監:可以優惠8% * 老板(Boss):優惠10%

Java實例
類圖:

Java設計模式編程中的責任鏈模式使用示例

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/**
 * 抽象責任
 */
public abstract class IFilter {
  private IFilter successor;
 
  public IFilter getSuccessor() {
    return successor;
  }
 
  public void setSuccessor(IFilter successor) {
    this.successor = successor;
  }
   
  public abstract void handleFilter();
   
  public abstract void handleFilter2();
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/**
 * 具體責任
 */
public class ConcreteFilter extends IFilter {
   
  private String name;
  public ConcreteFilter(String name) {
    this.name = name;
  }
   
  @Override
  public void handleFilter() {
    /*
     * 自己先處理,如有后繼者,再由它處理一次
     */
    System.out.println(name + " 處理了請求");
    if (getSuccessor() != null) {
      getSuccessor().handleFilter();
    }
  }
   
  @Override
  public void handleFilter2() {
    /*
     * 有后繼者就后繼者處理, 否則自己處理
     */
    if (getSuccessor() != null) {
      getSuccessor().handleFilter2();
    } else {
      System.out.println(name + " 處理了請求");
    }
  }
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Test {
  public static void main(String[] args) {
    IFilter filter1 = new ConcreteFilter("permission-filter");//權限過濾
    IFilter filter2 = new ConcreteFilter("suffix-filter");//后綴名過濾
    IFilter filter3 = new ConcreteFilter("style-filter");//風格過濾
    filter1.setSuccessor(filter2);
    filter2.setSuccessor(filter3);
    System.out.println("------以下是每一個處理者(包括后繼者)都處理了, 順序也是一級一級的傳遞------");
    filter1.handleFilter();
     
    System.out.println("------以下是交由最后一個后繼者處理------");
    filter1.handleFilter2();
     
  }
}

 

打?。?/p>

?
1
2
3
4
5
6
------以下是每一個處理者(包括后繼者)都處理了, 順序也是一級一級的傳遞------
permission-filter 處理了請求
suffix-filter 處理了請求
style-filter 處理了請求
------以下是交由最后一個后繼者處理------
style-filter 處理了請求

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品久久久久久久久久久久久久久久 | 精品免费一区二区 | 国内精品视频一区二区三区八戒 | 国产视频色 | 五月激情综合 | 久久伊| 免费的黄色网 | 一区二区三区中文 | 日韩精品一区二区在线观看 | 国产欧美一二三区在线粉嫩 | 91精品久久久久久久久中文字幕 | 国产中文字幕在线播放 | 黄色a视频| 精品国产一区二区三区免费 | 日韩欧美一区二区三区 | 欧美亚洲综合久久 | 日本二区视频 | 中文字幕视频在线免费 | 精品一区免费 | 毛片在线观看网站 | 日韩欧美国产一区二区 | 羞羞在线观看 | 永久在线观看 | 午夜影院 | 亚洲成人免费影院 | 自拍偷拍亚洲一区 | 狠狠操av | 久久国产精品亚洲 | 国产a在亚洲线播放 | 国产精品免费久久 | 日本三级一区二区 | 久久久久中文字幕 | 成人av网站在线观看 | 91精品免费在线观看 | 色乱码一区二区三区网站 | 欧美日韩精品电影 | 中文字幕一区二区三区日韩精品 | 桃色五月 | 亚洲二区视频 | 中文字幕第33页 | 久久久久黑人 |