一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專(zhuān)注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

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

服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - Java設(shè)計(jì)模式編程中的責(zé)任鏈模式使用示例

Java設(shè)計(jì)模式編程中的責(zé)任鏈模式使用示例

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

這篇文章主要介紹了Java設(shè)計(jì)模式編程中的責(zé)任鏈模式使用示例,責(zé)任鏈模式可以避免很多請(qǐng)求的發(fā)送者和接收者之間的耦合關(guān)系,需要的朋友可以參考下

責(zé)任鏈模式:多個(gè)對(duì)象由其對(duì)象對(duì)應(yīng)下家的引用連成一條鏈,請(qǐng)求在這個(gè)鏈上傳遞,直到 鏈上的某一個(gè)接收對(duì)象處理此請(qǐng)求。因?yàn)檎?qǐng)求的客戶(hù)端并不知道鏈上最終是誰(shuí)來(lái)處理這個(gè)請(qǐng)求,使得系統(tǒng)可以在不影響客戶(hù)端的情況下動(dòng)態(tài)地重新組織和分配責(zé)任, 從而避免了請(qǐng)求發(fā)送者與請(qǐng)求處理者之間的耦合。
責(zé)任鏈械中涉及到三種角色:
1,抽象處理者角色
2,具體處理者角色
3,請(qǐng)求發(fā)送者
小例子:假設(shè)去買(mǎi)房子,買(mǎi)房子就需要砍價(jià), 賣(mài)房的人職位不同,可以?xún)?yōu)惠的價(jià)格也不同,不同職位就可以形成一個(gè)處理請(qǐng)求的鏈。我們暫定: * 基層銷(xiāo)售員,只能優(yōu)惠3% * 銷(xiāo)售經(jīng)理:可以?xún)?yōu)惠5% * 銷(xiāo)售總監(jiān):可以?xún)?yōu)惠8% * 老板(Boss):優(yōu)惠10%

Java實(shí)例
類(lèi)圖:

Java設(shè)計(jì)模式編程中的責(zé)任鏈模式使用示例

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/**
 * 抽象責(zé)任
 */
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
/**
 * 具體責(zé)任
 */
public class ConcreteFilter extends IFilter {
   
  private String name;
  public ConcreteFilter(String name) {
    this.name = name;
  }
   
  @Override
  public void handleFilter() {
    /*
     * 自己先處理,如有后繼者,再由它處理一次
     */
    System.out.println(name + " 處理了請(qǐng)求");
    if (getSuccessor() != null) {
      getSuccessor().handleFilter();
    }
  }
   
  @Override
  public void handleFilter2() {
    /*
     * 有后繼者就后繼者處理, 否則自己處理
     */
    if (getSuccessor() != null) {
      getSuccessor().handleFilter2();
    } else {
      System.out.println(name + " 處理了請(qǐng)求");
    }
  }
}
?
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");//權(quán)限過(guò)濾
    IFilter filter2 = new ConcreteFilter("suffix-filter");//后綴名過(guò)濾
    IFilter filter3 = new ConcreteFilter("style-filter");//風(fēng)格過(guò)濾
    filter1.setSuccessor(filter2);
    filter2.setSuccessor(filter3);
    System.out.println("------以下是每一個(gè)處理者(包括后繼者)都處理了, 順序也是一級(jí)一級(jí)的傳遞------");
    filter1.handleFilter();
     
    System.out.println("------以下是交由最后一個(gè)后繼者處理------");
    filter1.handleFilter2();
     
  }
}

 

打印:

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

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91中文字幕yellow字幕网 | 丰满岳乱妇在线观看视频国产 | 99在线观看视频免费 | 草草视频在线观看最新 | 国产精品林美惠子在线观看 | 果冻传媒在线视频观看免费 | 精品久久久久久午夜 | x8x8在线观看免费 | 高h文恩好大好爽 | 亚洲国产精品久久网午夜小说 | 国产 日韩 欧美 综合 | 邪恶肉肉全彩色无遮盖 | 国产日韩欧美色视频色在线观看 | 五月一区二区久久综合天堂 | 97视频人人| 情趣内衣在线观看 | 情缘1完整版在线观看 | 美国xxnx| 国产偷窥女洗浴在线观看亚洲 | 国产未成女年一区二区 | 高清一区 | 韩国一大片a毛片女同 | 激情三级做爰在线观看激情 | 成人午夜爽爽爽免费视频 | 亚洲羞羞裸色私人影院 | 精品免费久久久久久影院 | 美国复古性经典xxxxx | 日本孕妇大胆孕交 | 精品亚洲一区二区三区在线播放 | 国产51页 | 欧美深夜在线 | 日韩精品视频美在线精品视频 | 高清国产在线 | 91尤物在线视频 | 精品一区二区三区在线视频观看 | chinese国产人妖videos | 恩不要好大好硬好爽3p | 教室里的激情电影 | 国产卡一卡二卡四卡无卡 | 日本一片免费观看高清完整 | 王淑兰与铁柱全文免费阅读 |