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

基于ES6/7/8/9封装的工具函数(持续更新,力求精简)

创建对象《JavaScript高级程序设计》

创建对象《JavaScript高级程序设计》

TypeScript,面向对象,类、构造函数、继承、抽象类、接口和封装

Laravel系列4.2查询构造器

高效开发:ES使用QueryBuilders查询索引库