責任鏈模式和外觀模式

2021-08-17 20:27:38 字數 2376 閱讀 9003

1.責任鏈設計模式

使多個物件都有機會處理請求,將這些物件連成一條鏈,並沿著這條鏈處理該請求,只道有物件處理他為止。

2.門面設計模式

要求乙個子系統的外部與其內部通訊必須通過乙個統一的物件進行,又稱之為外觀模式,提供乙個高層次的介面,使得子系統更易於使用。 說白了就是方法封裝。

userinfo使用者資訊

public

class userinfo

@override

public string tostring() ';

}}

使用者系統介面

public

inte***ce iusersystem

責任鏈結口

public

inte***ce

iusersystemhandle

extends

iusersystemhandle>

absusersystemhandler責任鏈基類

public

abstract

class

absusersystemhandler

implements

iusersystemhandle

,iusersystem

@override

public

void nexthandler(absusersystemhandler systemhandler)

}

qq使用者系統

public

class

qqusersystem

extends

absusersystemhandler

@override

public userinfo queryuserinfo(string name, string pwd)

}//沒有就交給下乙個

absusersystemhandler handler = getnexthandler();

if (handler != null)

return

null;

}}

public

class

wxusersystem

extends

absusersystemhandler

@override

public userinfo queryuserinfo(string name, string pwd)

}//沒有就交給下乙個

absusersystemhandler handler = getnexthandler();

if (handler != null)

return

null;

}}

測試

qqusersystem qqusersystem = new qqusersystem();

wxusersystem wxusersystem = new wxusersystem();

qqusersystem.nexthandler(wxusersystem);

userinfo userinfo = qqusersystem.queryuserinfo("愛我的你", "1234");

system.out

.println(userinfo);

外觀設計模式usersystemfacade封裝

public

class

usersystemfacade

implements

iusersystem

@override

public userinfo queryuserinfo(string name, string pwd)

}

測試

usersystemfacade usersystemfacade=new usersystemfacade();

userinfo userinfo = usersystemfacade.queryuserinfo("芊芊", "1234");

system.out

.println(userinfo);

策略模式和責任鏈模式

策略模式,就是為了解決像有很多if else這樣的 如下 示例 公共策略 public inte ce istratery public class straterya implements istratery public class strateryb implements istratery ...

責任鏈模式

責任鏈模式 chain of responsibility 的目標是使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將這些物件連成一條鏈,並沿著這條鏈傳遞請求,直到有乙個物件處理它為止。舉個例子。你到銀行去辦理業務,只是簡單的存個錢,也許atm就解決你的問題。如果你是為了交費...

責任鏈模式

有3個request與3個handler,每個request由相應的handler來處理,當乙個handler與request不匹配時則傳遞給下乙個handler來處理 inte ce request class request1 implements request class request2 ...