File tree Expand file tree Collapse file tree
java-des/src/com/java/design/responsibility Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ package com .java .design .responsibility ;
2+
3+ /**
4+ * 加薪申请
5+ *
6+ * @author Administrator
7+ *
8+ */
9+ public class AddMoneyRequest implements Request {
10+
11+ }
Original file line number Diff line number Diff line change 1+ package com .java .design .responsibility ;
2+
3+ /**
4+ * 离职申请
5+ *
6+ * @author Administrator
7+ *
8+ */
9+ public class DimissionRequest implements Request {
10+
11+ }
Original file line number Diff line number Diff line change 1+ package com .java .design .responsibility ;
2+
3+ public class HRRequestHandle implements RequestHandler {
4+
5+ @ Override
6+ public void handleRequest (Request request ) {
7+
8+ if (request instanceof DimissionRequest ) {
9+ System .out .println ("要离职 人事审批 ..." );
10+ }
11+
12+ System .out .println ("请求完成 ..." );
13+ }
14+ }
Original file line number Diff line number Diff line change 1+ package com .java .design .responsibility ;
2+
3+ public class PMRequestHandle implements RequestHandler {
4+
5+ RequestHandler requestHandler ;
6+
7+ public PMRequestHandle (RequestHandler requestHandler ) {
8+
9+ this .requestHandler = requestHandler ;
10+ }
11+
12+ @ Override
13+ public void handleRequest (Request request ) {
14+
15+ if (request instanceof AddMoneyRequest ) {
16+
17+ System .out .println ("要加薪,项目经理审批 ..." );
18+ } else {
19+
20+ requestHandler .handleRequest (request );
21+ }
22+
23+ }
24+ }
Original file line number Diff line number Diff line change 1+ package com .java .design .responsibility ;
2+
3+ public interface Request {
4+
5+ }
Original file line number Diff line number Diff line change 1+ package com .java .design .responsibility ;
2+
3+ public interface RequestHandler {
4+
5+ void handleRequest (Request request );
6+ }
Original file line number Diff line number Diff line change 1+ package com .java .design .responsibility ;
2+
3+ /**
4+ * 责任链模式 -----> 是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,
5+ * 直到链上的某一个对象决定处理此请求
6+ * 发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任
7+ * Tomcat中的Filter就是使用了责任链模式
8+ * 创建一个Filter除了要在web.xml文件中做相应配置外,还需要实现javax.servlet.Filter接口。
9+ *
10+ * @author Administrator
11+ *
12+ */
13+ public class ResponsibilityPattern {
14+
15+ public static void main (String [] args ) {
16+
17+ RequestHandler hr = new HRRequestHandle ();
18+ RequestHandler pm = new PMRequestHandle (hr );
19+
20+ Request request = new DimissionRequest ();
21+ hr .handleRequest (request );
22+
23+ request = new AddMoneyRequest ();
24+ pm .handleRequest (request );
25+
26+ request = new DimissionRequest ();
27+ pm .handleRequest (request );
28+
29+ }
30+
31+ }
You can’t perform that action at this time.
0 commit comments