码迷,mamicode.com
首页 > 其他好文 > 详细

代理-不完全

时间:2015-01-02 06:30:41      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

package org.web.proxy;

import java.lang.reflect.Method;

public class Context implements MethodProxy {
	
	public String method = null;
	
	public String service = null;
	
	public String methodStatus = null;
	

	public String setMethod(String method) {
		if(method == null) {
			try {
				throw new Exception();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		this.method = method;
		return "ok";
	}

	public String setService(String service) {
		if(service == null) {
			try {
				throw new Exception();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		this.service = service;
		return "ok";
	}

	public String invokeMethod() {
		if(this.service == null || this.method == null) {
			System.out.println("No Service || No Method");
			System.exit(-1);
		}
		else {
			try {
				Class<?> cla = Class.forName("org.web.service.HelloService");
				Method[] methods = cla.getMethods();
				Method m = cla.getMethod(this.method, String.class);
				this.methodStatus = String.valueOf(m.invoke(cla.newInstance(), "fuckyou"));
			} catch (Exception e) {
				e.printStackTrace();
			} 
		}
		
		return this.methodStatus;
	}

}

这是最重要的一个类。。。里面用到了反射。。

package org.web.proxy;
//定义的一些接口方法。。
public interface MethodProxy {
	
	//setMethod
	public String setMethod(String method);
	
	//setService
	public String setService(String service);
	
	//invoke method
	public String invokeMethod();
}
package org.web;

import org.web.proxy.Context;
public class ProxyPattern {
	
	public static void main(String[] args) {
		Context context = new Context();
		context.setService("org.web.service.HelloService");
		context.setMethod("helloWorld");
		System.out.println("Main Method :" + context.invokeMethod());
	}

}

Main方法。其实就是起一个调用的过程。。。。

package org.web.service;

public class HelloService {
	
	public String helloWorld(String name) {
		System.out.println("HelloService:  " + name);
		return name;
	}

}

service 类。


总结。。。感觉还是封装。。。。。。其它,没了。。。

代理-不完全

标签:

原文地址:http://my.oschina.net/0x4ad/blog/363044

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!