当前位置: 首页 > news >正文

温州做网店的网站/百度点击快速排名

温州做网店的网站,百度点击快速排名,关于政府网站建设的指导意见,如何做全景素材网站职责链模式规定了一个请求,这个请求需要特定的对象去处理,当把这个请求交个一个对象,但是这个对象不负责处理这个请求,可以动态地交给其他对象处理,直到交给对的对象处理,这些对象都有处理请求的机会&#…

职责链模式规定了一个请求,这个请求需要特定的对象去处理,当把这个请求交个一个对象,但是这个对象不负责处理这个请求,可以动态地交给其他对象处理,直到交给对的对象处理,这些对象都有处理请求的机会,只有当请求是该自己负责的时候才处理,否则交给其他对象。

下面以==============

要离职, 人事审批!

请求完毕

===========

要加薪, 项目经理审批!

========

要请假, 项目组长审批!

的规定,写一个职责链模式的例子:

这是所有请求的接口

public interfaceRequest {

voidgetRequest();

}

请假的请求实现类

public classLeaveRequestimplementsRequest{

@Override

public voidgetRequest() {

System.out.println("leave");

}

}

离职的请求实现类

public classDimissionRequestimplementsRequest{

@Override

public voidgetRequest() {

System.out.println("dimission");

}

}

加薪的请求实现类

public classAddMoneyRequestimplementsRequest{

@Override

public voidgetRequest() {

System.out.println("add money");

}

}

处理请求的接口

public interface RequestHandle{

voidhandleRequest(Request request);

}

Hr处理离职的请求

public classHRRequestHandleimplementsRequestHandle{

public voidhandleRequest(Request request) {

if(requestinstanceof DimissionRequest) {

System.out.println("要离职, 人事审批!");

}

System.out.println("请求完毕");

}

}

组长处理请假的请求

public classTLRequestHandleimplementsRequestHandle{

RequestHandlerh;

public TLRequestHandle(RequestHandle rh) {

this.rh= rh;

}

public voidhandleRequest(Request request) {

if(requestinstanceofLeaveRequest) {

System.out.println("要请假, 项目组长审批!");

}else{

rh.handleRequest(request);

}

}

}

经理处理加薪的请求

public classPMRequestHandleimplementsRequestHandle{

RequestHandlerh;

publicPMRequestHandle(RequestHandle rh) {

this.rh= rh;

}

public voidhandleRequest(Requestrequest) {

if(request instanceofAddMoneyRequest) {

System.out.println("要加薪, 项目经理审批!");

}else{

rh.handleRequest(request);

}

}

}

测试类

public classTest {

public static voidmain(String[] args) {

//先把所有的处理请求的对象组成职责链

RequestHandle hr =newHRRequestHandle();

RequestHandle tl =newTLRequestHandle(hr);//组长

RequestHandle pm =newPMRequestHandle(tl);//经理

Request dimissionRequest =newDimissionRequest();

Request addMoneyRequest =newAddMoneyRequest();

Request  leaveRequest =newLeaveRequest();

System.out.println("==============");

//人事处理离职请求

pm.handleRequest(dimissionRequest);

System.out.println("===========");

//经理处理加薪请求

pm.handleRequest(addMoneyRequest);

System.out.println("========");

//项目组长处理请假请求

pm.handleRequest(leaveRequest);

}

}

在使用时要调用最高级的职责调用者,由他去负责往下分配职责

相关文章:

  • 网站会员营销/常见的推广平台有哪些