构造器设计模式-封装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查询接口的主要内容,如果未能解决你的问题,请参考以下文章