建造者模式 向右看齐 2021-09-17 01:24 353阅读 0赞 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。 建造者模式是在当创建复杂对象的算法应该独立于该对象的组成部分以及他们的装配方式时适用的模式。 Builder:是为创建一个product对象的各个部件指定的抽象接口; ConcreteBuilder:他是一个具体建造者,实现Builder接口,构造和装配各个部件; Product:具体的产品角色; Director:指挥者,它是构建一个使用Builder接口对象; 主要是用于创建一些复杂的对象,这些对象内部构建间的建造顺序通常是稳定的,但对象内部的构建通常面临着复杂的变化;建造者模式的好处就是是的建造代码和表示代码分离,由于建造者隐藏了该产品的是如何组装的,所以若需要改变一个产品的内部表示,只需要再定义一个具体的建造者就可以了; 实例UML图: ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhbmdfc2h1eXU_size_16_color_FFFFFF_t_70][] 代码: /** * @author Shuyu.Wang * @package:com.shuyu.builder * @description:抽象建造者类 * @date 2018-11-19 23:19 **/ public interface Builder { void buildPartA(); void buildPartB(); Product getResult(); } /** * @author Shuyu.Wang * @package:com.shuyu.builder * @description:产品类 * @date 2018-11-19 23:14 **/ @Slf4j public class Product { List<String> parts=new ArrayList<>(); public void add(String part){ parts.add(part); } public void show(){ log.info("产品 创建--"); for (String part:parts) { log.info(part); } } } /** * @author Shuyu.Wang * @package:com.shuyu.builder * @description:抽象建造者类 * @date 2018-11-19 23:19 **/ public interface Builder { void buildPartA(); void buildPartB(); Product getResult(); } /** * @author Shuyu.Wang * @package:com.shuyu.builder * @description:具体建造者类 * @date 2018-11-19 23:21 **/ @Slf4j public class ConcreteBuilder1 implements Builder { private Product product=new Product(); @Override public void buildPartA() { product.add("部件A"); } @Override public void buildPartB() { product.add("部件B"); } @Override public Product getResult() { return product; } } /** * @author Shuyu.Wang * @package:com.shuyu.builder * @description: * @date 2018-11-19 23:24 **/ @Slf4j public class ConcreteBuilder2 implements Builder { private Product product=new Product(); @Override public void buildPartA() { product.add("部件X"); } @Override public void buildPartB() { product.add("部件Y"); } @Override public Product getResult() { return product; } } /** * @author Shuyu.Wang * @package:com.shuyu.builder * @description:指挥者类 * @date 2018-11-19 23:26 **/ public class Director { public void construct(Builder builder){ builder.buildPartA(); builder.buildPartB(); } } 测试代码: @RunWith(SpringRunner.class) @SpringBootTest public class BuilderApplicationTests { @Test public void contextLoads() { Director director=new Director(); Builder builder=new ConcreteBuilder1(); Builder builder1=new ConcreteBuilder2(); director.construct(builder); Product product=builder.getResult(); product.show(); director.construct(builder1); Product product1=builder1.getResult(); product1.show(); } } 运行结果: 2018-11-19 23:30:40.784 INFO 23188 --- \[ main\] com.shuyu.builder.Product : 产品 创建-- 2018-11-19 23:30:40.785 INFO 23188 --- \[ main\] com.shuyu.builder.Product : 部件A 2018-11-19 23:30:40.785 INFO 23188 --- \[ main\] com.shuyu.builder.Product : 部件B 2018-11-19 23:30:40.785 INFO 23188 --- \[ main\] com.shuyu.builder.Product : 产品 创建-- 2018-11-19 23:30:40.785 INFO 23188 --- \[ main\] com.shuyu.builder.Product : 部件X 2018-11-19 23:30:40.785 INFO 23188 --- \[ main\] com.shuyu.builder.Product : 部件Y 代码github地址:[https://github.com/iot-wangshuyu/designpatterns/tree/master/builder][https_github.com_iot-wangshuyu_designpatterns_tree_master_builder] [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhbmdfc2h1eXU_size_16_color_FFFFFF_t_70]: /images/20210901/b8b47e2c53054d6396f9c2472b2ea18a.png [https_github.com_iot-wangshuyu_designpatterns_tree_master_builder]: https://github.com/iot-wangshuyu/designpatterns/tree/master/builder
相关 建造者模式 定义 将一个复杂对象的构造与它的表示分离,是的同样的构建过程可以创建不同的表示。 类型:创建型 建造者模式与工厂模式有些类似: 建造者更注重:方法的调用顺序,关心创 「爱情、让人受尽委屈。」/ 2022年02月15日 19:25/ 0 赞/ 266 阅读
相关 建造者模式 [2019独角兽企业重金招聘Python工程师标准>>> ][2019_Python_] ![hot3.png][] 1、产品类 package com.hhdys r囧r小猫/ 2022年01月14日 22:37/ 0 赞/ 234 阅读
相关 建造者模式 建造者模式,又称为生成器模式,是一种较为复杂、使用频率不高的创建型模式。它为客户端返回的不是一个简单的产品,而是有多个部件组成的复杂产品。以手机为例,建造者模式返回的是一个完整 谁践踏了优雅/ 2021年12月10日 18:29/ 0 赞/ 240 阅读
相关 建造者模式 建造者模式 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 柔光的暖阳◎/ 2021年09月29日 16:04/ 0 赞/ 314 阅读
相关 建造者模式 找商家买电脑: public class Computer { private String brand; private String s 拼搏现实的明天。/ 2021年09月24日 07:52/ 0 赞/ 357 阅读
相关 建造者模式 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 一个 Buil 向右看齐/ 2021年09月17日 01:24/ 0 赞/ 354 阅读
相关 建造者模式 4.建造者模式 ![70][] class Customer { static void Main(string[] a 女爷i/ 2021年09月16日 23:52/ 0 赞/ 356 阅读
相关 建造者模式 建造者模式 1. 简介 2. 建造者模式介绍 2.1 定义 2.2 建造者模式的优点 2.3 建造者模式的缺点 ﹏ヽ暗。殇╰゛Y/ 2021年08月30日 22:18/ 0 赞/ 487 阅读
相关 建造者模式 一 点睛 将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naG 怼烎@/ 2021年07月24日 18:01/ 0 赞/ 410 阅读
相关 建造者模式 造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 一个 Bu... 小灰灰/ 2020年06月13日 05:36/ 0 赞/ 735 阅读
还没有评论,来说两句吧...