1. 程式人生 > >代理模式與策略模式的區別!

代理模式與策略模式的區別!

代理模式與策略模式有一些類似的地方,比如:

策略者可以根據策略不同,執行不同的策略方法;

代理人可以被代理物件的不同,執行不同的被代理人的方法;

似乎用程式碼很難表達清楚二者有什麼區別,那就用一種場景來描述一下二者的區別吧,理解僅供參考!

先說一些人:高層領導,市場部主管,市場部工作人員四個(A,B,C,D);

主管:不做具體的工作,但是他知道每個員工的基本資訊

員工:四個工作人員之間業務類似,但又不是很相同,A自己沒有事情做,但他業務最熟練的,能代B,C,D這三個人做任何事情!

某天領導視察市場部,把主管叫過來,想了解一下員工資訊,就這樣領導問誰的資訊,主管就把相應員工資訊告訴給了領導;

然後呢,領導想看一下員工的工作情況,就讓主管找個人過來演示,這樣,主管就把A叫過來了,讓A就依次把B,C,D的工作內容給領導演示了一下!

主管就是策略者的角色,而A就是一個代理人的角色;

區別:

策略者,即主管,雖然能夠管控各個員工,但是他只能做員工的部分事情,比如提供員工個人基本資訊

代理者,A,由於代理人跟被代理人是同一級別的,代理人必須要熟悉被代理人的所有業務,BCD能幹啥,A就能幹啥;

理解很淺薄,哈哈!