Java 责任链模式 Builder

责任链:

责任链的含义为一组处理相关事务的执行链,该链上存在者许多节点,每个节点都会映射到具体请求事务上。如果处理完一个节点后那么该节点将持有整个对象的引用传递到下一个节点上直至处理完毕。

使用责任链的优点是简化了对象对外暴露的细节,使其内部更加隐蔽;增强了对象指派职责的灵活性,允许动态地增加或减少责任链。但它的缺点也是显而易见的,就是请求不一定能够被接受,因此节点必须要做好这些条件下的处理。

通常在网络请求里面最容易见到使用责任链模式的框架,如OkHttp、Alamofire等。下面就Android中的OkHttp我们模拟出一个网络请求的示例。

代码:

public class OakHttp {
	
	public final String url;
	public final String header;
	public final String language;

	public OakHttp(){
		this(new Builder());
	}
	
	
	public OakHttp(Builder builder){
		this.url = builder.url;
		this.header = builder.header;
		this.language = builder.language;
	}
	
	public String getURL() {
		return url;
	}
	
	public String getHeader(){
		return header;
	}
	
	public String getLanguage(){
		return language;
	}
	
	public Builder newBuilder(){
		return new Builder(this);
	}
	
	@Override
	public String toString(){
		return "OakHttp{" +
	"url=" + url + ",header=" + header + ",language=" + language + "}";
	}
	
	public static class Builder{
		public String url;
		public String header;
		public String language;
		
		public Builder(){
			url = url;
			header = header;
			language = language;
		}
		
		Builder(OakHttp oakHttp){
			this.url = url;
			this.header = header;
			this.language = language;
		}
		
		public Builder setURL(String url){
			this.url = url;
			return this;
		}
		
		public Builder setHeader(String header){
			this.header = header;
			return this;
		}
		
		public Builder setLanguage(String language){
			this.language = language;
			return this;
		}
		
		public OakHttp build(){
			return new OakHttp(this);
		}
	}
	
}

使用:

		OakHttp oakHttp = new OakHttp.Builder()
				.setURL("https://www.baidu.com")
				.setHeader("FireFox")
				.setLanguage("Chiness")
				.build();
		System.out.println(oakHttp.toString());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值