构造器设计模式-封装es查询接口
Posted 长城守卫队长
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了构造器设计模式-封装es查询接口相关的知识,希望对你有一定的参考价值。
1、什么是构造器设计模式
其核心思想是将一个“复杂对象的构建算法”与它的“部件及组装方式”分离(说白了就是创建一个对象)
2、到底什么时候使用呢
我随便找到了一个网页的首页,
这个网站的搜索条件是不是很复杂,所以当构建这个网站的搜索条件时候可以使用构造器设计模式
3、随便写一个入门级别的demo
import java.util.ArrayList;
public class SearchCondition {
private String head;
private String body;
private ArrayList legs;
private ArrayList hands;
public String getHead() {
return head;
}
public void setHead(String head) {
this.head = head;
}
public String getBody() {
return body;
}
public void setBody(String body) {
this.body = body;
}
public ArrayList getLegs() {
return legs;
}
public void setLegs(ArrayList legs) {
this.legs = legs;
}
public ArrayList getHands() {
return hands;
}
public void setHands(ArrayList hands) {
this.hands = hands;
}
static class Builder {
private SearchCondition condition;
public Builder() {
condition = new SearchCondition();
}
public Builder setHead(String head) {
condition.setHead(head);
return this;
}
public Builder setBody(String body) {
condition.setBody(body);
return this;
}
public Builder setLegs(ArrayList legs) {
condition.setLegs(legs);
return this;
}
public Builder setHands(ArrayList hands) {
condition.setHands(hands);
return this;
}
public SearchCondition build() {
return condition;
}
}
public static void main(String[] hh) {
ArrayList hands = new ArrayList();
hands.add("left");
hands.add("right");
ArrayList legs = new ArrayList();
legs.add("left");
legs.add("right");
SearchCondition condition = new SearchCondition.Builder()
.setBody("body")
.setHands(hands)
.setLegs(legs)
.setHead("head")
.build();
}
}
4.通过构造器构建搜索服务查询接口
首先我们定义一个dubbo - rpc接口
public interface ISearchFacade {
SearchResult<XXX> search(SearchCondition condition);
}
此时我们可以把这个查询条件设计为构造器,消费者可以通过构造器进行查询
以上是关于构造器设计模式-封装es查询接口的主要内容,如果未能解决你的问题,请参考以下文章