链接模式1
设计模式的意义在于:面向业务内容、业务数据结构和系统架构,高内聚低耦合、优雅的将平面逻辑立体化。
1 package designPattern; 2 /** 3 * 链接模式1 4 * @author Administrator 5 */ 6 public class A8_ChainTest1 { 7 8 /** 9 * 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链, 10 * 并沿着这条链传递该请求,直到有一个对象处理它为止。 11 * 这一模式的想法是,给多个对象处理一个请求的机会,从而解耦发送者和接受者. 12 * 适用性: 13 * 1.有多个的对象可以处理一个请求,哪个对象处理该请求运行时刻自动确定。 14 * 2.你想在不明确指定接收者的情况下,向多个对象中的一个提交一个请求。 15 * 3.可处理一个请求的对象集合应被动态指定。 16 */ 17 public static void main(String[] args) { 18 Request1 r1=new AddWageRequest(); 19 Request1 r2=new QuitJobRequest(); 20 Request1 r3=new ChangeworkRequest(); 21 22 Handle qHandle=new QuitJobHandle(); 23 Handle aHandle=new AddWageHandle(qHandle); 24 Handle cHandle=new ChangeworkHandle(aHandle); 25 qHandle.handleRequest(r1); 26 aHandle.handleRequest(r1); 27 cHandle.handleRequest(r3); 28 cHandle.handleRequest(r2); 30 } 31 } 32 interface Request1{} 33 class AddWageRequest implements Request1{} 34 class QuitJobRequest implements Request1{} 35 class ChangeworkRequest implements Request1{} 36 interface Handle{ 37 void handleRequest(Request1 r); 38 } 39 40 class AddWageHandle implements Handle 41 { 42 Handle h; 43 public AddWageHandle(Handle h) { 44 super(); 45 this.h=h; 46 } 47 public void handleRequest(Request1 r) { 48 if (r instanceof AddWageRequest) { 49 System.out.println("加薪申请,审批中......"); 50 } 51 h.handleRequest(r); 52 } 53 } 54 class QuitJobHandle implements Handle 55 { 56 public void handleRequest(Request1 r) { 57 if (r instanceof QuitJobRequest) { 58 System.out.println("离职......"); 59 } 60 } 61 } 62 class ChangeworkHandle implements Handle 63 { 64 Handle h; 65 public ChangeworkHandle(Handle h) { 66 super(); 67 this.h=h; 68 } 69 public void handleRequest(Request1 r) { 70 if (r instanceof ChangeworkRequest) { 71 System.out.println("更换工作申请中...."); 72 } 73 h.handleRequest(r); 74 } 75 }
环境:JDK1.6,MAVEN,tomcat,eclipse
源码地址:https://files.cnblogs.com/files/xiluhua/designPattern.rar
欢迎亲们评论指教。