建造者模式

首先我记录一下,我是怎样知道这个设计模式。

        在我学习微服务服务发现的时候,需要对调用层做一番改造,将 Autowire 注入本地服务的方式,替换为使用 WebClient 发起远程调用。

        这时候怎么改造的呢建造者模式_第1张图片

远程接口调用的代码改造可以通过 WebClient 提供的“链式编程”轻松实现,下面是代码
的完整实现。 

建造者模式_第2张图片

WebClient 使用了一种链式编程的风格来构造请求对象,链式编程就是我们熟悉的
Builder 建造者模式。仔细观察你会发现,大部分开源应用都在使用这种设计模式简化对象
的构建 

可以借助lombok @builder来尝试。

回归正题 建造者模式

builder模式:当有一个复杂的对象 比如说他有100各部分去赋值,一般呢,参数特别的

一部分一部分给他去赋值

建造者模式_第3张图片

建造者模式_第4张图片

有的时候我们只需要传那么几个 我们就这么写

建造者模式_第5张图片

建造者模式的优缺点

建造者模式的优点:
1、封装性好,创建和使用分离;
2、扩展性好,建造类之间独立、一定程度上解耦。
建造者模式的缺点:
1、产生多余的Builder对象;
2、产品内部发生变化,建造者都要修改,成本较高

建造者模式和工厂模式的区别

通过前面的学习,我们已经了解建造者模式,那么它和工厂模式有什么区别呢?
1、建造者模式更加注重方法的调用顺序,工厂模式注重于创建对象。
2、创建对象的力度不同,建造者模式创建复杂的对象,由各种复杂的部件组成,工厂模式创建出来的都一样。
3、关注点不一样,工厂模式只需要把对象创建出来就行了,而建造者模式不仅要创建出这个对象,还要知道这个对象由哪些部分组成。
4、建造者模式根据建造过程中的顺序不一样,最终的对象部件组成也不一样
 

你可能感兴趣的:(设计模式,建造者模式)