最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2016年05月07日 09:47:56   作者:匆忙擁擠repeat  
這篇文章主要介紹了Java設(shè)計模式編程中的責(zé)任鏈模式使用示例,責(zé)任鏈模式可以避免很多請求的發(fā)送者和接收者之間的耦合關(guān)系,需要的朋友可以參考下

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

Java實例
類圖:

20165794216522.jpg (686×324)

/** 
 * 抽象責(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(); 
} 

/** 
 * 具體責(zé)任 
 */ 
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 + " 處理了請求"); 
    } 
  } 
} 

public class Test { 
  public static void main(String[] args) { 
    IFilter filter1 = new ConcreteFilter("permission-filter");//權(quán)限過濾 
    IFilter filter2 = new ConcreteFilter("suffix-filter");//后綴名過濾 
    IFilter filter3 = new ConcreteFilter("style-filter");//風(fēng)格過濾 
    filter1.setSuccessor(filter2); 
    filter2.setSuccessor(filter3); 
    System.out.println("------以下是每一個處理者(包括后繼者)都處理了, 順序也是一級一級的傳遞------"); 
    filter1.handleFilter(); 
     
    System.out.println("------以下是交由最后一個后繼者處理------"); 
    filter1.handleFilter2(); 
     
  } 
} 


打?。?/p>

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

相關(guān)文章

  • Spring Boot調(diào)用 Shell 腳本實現(xiàn)看門狗功能

    Spring Boot調(diào)用 Shell 腳本實現(xiàn)看門狗功能

    這篇文章主要介紹了Spring Boot調(diào)用 Shell 腳本實現(xiàn)看門狗功能,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • SpringBoot接口或方法進(jìn)行失敗重試的實現(xiàn)方式

    SpringBoot接口或方法進(jìn)行失敗重試的實現(xiàn)方式

    為了防止網(wǎng)絡(luò)抖動,影響我們核心接口或方法的成功率,通常我們會對核心方法進(jìn)行失敗重試,如果我們自己通過for循環(huán)實現(xiàn),會使代碼顯得比較臃腫,所以本文給大家介紹了SpringBoot接口或方法進(jìn)行失敗重試的實現(xiàn)方式,需要的朋友可以參考下
    2024-07-07
  • Spring Boot 整合 Mockito提升Java單元測試的高效實踐案例

    Spring Boot 整合 Mockito提升Java單元測試的高效實踐案例

    Mockito與Spring Boot的整合為Java開發(fā)者提供了一套完整的解決方案,使得單元測試更為精準(zhǔn)、高效,從而確保了代碼質(zhì)量、降低了維護(hù)成本,并促進(jìn)了項目的持續(xù)集成與交付,感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • springboot如何獲取接口下所有實現(xiàn)類

    springboot如何獲取接口下所有實現(xiàn)類

    這篇文章主要介紹了springboot如何獲取接口下所有實現(xiàn)類問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • java連接Access數(shù)據(jù)庫的方法

    java連接Access數(shù)據(jù)庫的方法

    這篇文章主要為大家詳細(xì)介紹了java連接Access數(shù)據(jù)庫的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Mybatis如何解決sql中l(wèi)ike通配符模糊匹配問題

    Mybatis如何解決sql中l(wèi)ike通配符模糊匹配問題

    這篇文章主要介紹了Mybatis如何解決sql中l(wèi)ike通配符模糊匹配問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Spring中Bean的創(chuàng)建流程詳細(xì)解讀

    Spring中Bean的創(chuàng)建流程詳細(xì)解讀

    這篇文章主要介紹了Spring中Bean的創(chuàng)建流程詳細(xì)解讀,Spring 中創(chuàng)建 Bean ,是通過調(diào)用 GetBean 方法來觸發(fā)的,所以,我們會從這個方法開始,需要的朋友可以參考下
    2023-10-10
  • Mybatis plus中使用in查詢出錯如何解決

    Mybatis plus中使用in查詢出錯如何解決

    這篇文章主要介紹了Mybatis plus中使用in查詢出錯的問題及解決方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • idea?maven?經(jīng)常主目錄自動變回默認(rèn)的解決方法

    idea?maven?經(jīng)常主目錄自動變回默認(rèn)的解決方法

    很多朋友反映idea?maven?經(jīng)常主目錄自動變回默認(rèn),遇到這樣的問題真的很頭疼,該如何解決呢?下面小編給大家介紹下idea?maven目錄變回默認(rèn)的解決方法,需要的朋友可以參考下
    2022-08-08
  • Java中構(gòu)造、生成XML簡明教程

    Java中構(gòu)造、生成XML簡明教程

    這篇文章主要介紹了Java中構(gòu)造、生成XML簡明教程,本文通過dom4j包來完成,需要的朋友可以參考下
    2014-08-08

最新評論

门头沟区| 文登市| 明光市| 当雄县| 大荔县| 四川省| 县级市| 道真| 获嘉县| 六枝特区| 衡阳市| 邵东县| 彭山县| 永新县| 积石山| 怀柔区| 丹阳市| 五家渠市| 霍城县| 手机| 万宁市| 潜江市| 上饶县| 宜兰市| 来宾市| 沂南县| 永仁县| 门头沟区| 日照市| 革吉县| 七台河市| 镇雄县| 宣化县| 茌平县| 荣昌县| 股票| 汉川市| 翼城县| 利津县| 永胜县| 旅游|