Java設計模式 狀態模式 責任鏈模式

2021-09-25 00:04:38 字數 1929 閱讀 5858

狀態模式:以登入和未登入狀態為例:

1.建立登入logincontext

public class logincontext 

public static logincontext getinstance()

private static class loginholder

private userstatus muserstatus;

/*** 設定當前使用者的狀態

* @param userstatus

*/public void setuserstatus(userstatus userstatus)

/*** 使用者行為

*/public void forward()

} public void commit()

}}

2.建立使用者可執行的狀態介面

/**

* 使用者可執行的狀態

*/public inte***ce userstatus

3.建立使用者登入狀態例項(只有使用者已經登入,實際行為方法呼叫才會執行)

/**

* 使用者登入狀態

*/public class loginstatus implements userstatus

@override

public void commit()

}

4.建立使用者未登入狀態例項

/**

* 使用者未登入狀態

* 行為操作都會執行提示使用者登入操作

*/public class logoutstatus implements userstatus

@override

public void commit()

}

5.實際呼叫

//獲取當前抽象狀態例項

logincontext mlogincontext = logincontext.getinstance();

//設定當前使用者登入狀態

mlogincontext.setuserstatus(new logoutstatus());

//執行使用者行為

mlogincontext.forward();

責任鏈模式:

//定義抽象服務處理者

public abstract class servicehandler else

}}}

//normal servicehandler

public class normalservice extends servicehandler

@override

public void handle(int size)

}//large servicehandler

public class largeservice extends servicehandler

@override

public void handle(int size)

}

//use

servicehandler servicehandler = new nextmajor();

normalservice normalservice = new normalservice();

largeservice largeservice = new largeservice();

servicehandler.nexthandler = normalservice;

normalservice.nexthandler = largeservice;

servicehandler.handrequest(3);

java設計模式 責任鏈模式

步驟一 建立抽象處理者 handler 角色 這裡是操作與處理分開,介面定義操做方法,抽象類定義處理方法,具體可以寫在一起也行 public inte ce handlerpublic abstract class abstracthandler public void sethandler han...

Java設計模式 責任鏈模式

責任鏈模式責任鏈的應用場景 servlet api 中的filter過濾器 mvc 框架中的 簡單使用責任鏈模式拆分 servlet api 中的過濾器 模擬servlet中的request物件 desc模擬 servlet 中的 request 物件 模擬servlet中的response物件 d...

java設計模式之責任鏈模式

chain ofresponsibility cor 模式也叫職責鏈模式或者職責連鎖模式,是行為模式之一,該模式構造一系列分別擔當不同的職責的類的物件來共同完成乙個任務,這些類的物件之間像鏈條一樣緊密相連,所以被稱作職責鏈模式。這種模式給予請求的型別,對請求的傳送者和接收者進行解耦。在這種模式中,通...