建造者模式 谁践踏了优雅 2021-12-10 18:29 194阅读 0赞 建造者模式,又称为生成器模式,是一种较为复杂、使用频率不高的创建型模式。它为客户端返回的不是一个简单的产品,而是有多个部件组成的复杂产品。以手机为例,建造者模式返回的是一个完整的手机产品,而不是手机的各个部件,显示屏、听筒、主板、电源等,如何将这些部件组装成一个完整的手机给用户,这正是建造者模式解决的问题 **建造者模式(Builder Pattern):**将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一种对象创建型模式 建造者模式允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节 下面以制作书籍为例,代码演示建造者模式 定义书籍产品类 package com.design.builder; public class Book { private String bookName; //书名 private String bookAuthor; //作者 public String getBookName() { return bookName; } public void setBookName(String bookName) { this.bookName = bookName; } public String getBookAuthor() { return bookAuthor; } public void setBookAuthor(String bookAuthor) { this.bookAuthor = bookAuthor; } @Override public String toString() { return "Book{" + "bookName='" + bookName + '\'' + ", bookAuthor='" + bookAuthor + '\'' + '}'; } } 定义制作书籍的抽象类 这里可以理解为抽象的出版社 package com.design.builder; public abstract class BookBuilder { public abstract void buildBookName(String bookName); public abstract void buildBookAuthor(String bookAuthor); public abstract Book makeBook(); } 定义具体的制作书籍类,继承制作书籍抽象类 这里可以理解为具体的出版社,如中华书局出版社 package com.design.builder; public class ZhongHuaBookBuilder extends BookBuilder{ Book book = new Book(); @Override public void buildBookName(String bookName) { book.setBookName(bookName); } @Override public void buildBookAuthor(String bookAuthor) { book.setBookAuthor(bookAuthor); } @Override public Book makeBook() { return book; } } 定义指挥者类 这里可以理解为出版书籍的负责人 package com.design.builder; public class Publisher { private BookBuilder bookBuilder; public Publisher(BookBuilder bookBuilder){ this.bookBuilder = bookBuilder; } public Book makeBook(String bookName, String bookAuthor){ this.bookBuilder.buildBookName(bookName); this.bookBuilder.buildBookAuthor(bookAuthor); return this.bookBuilder.makeBook(); } } 建造者模式代码演示完成 类图如下 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dzanp6Y2Jx_size_16_color_FFFFFF_t_70][] 测试调用 这里可以理解为书籍的出版负责人,通过中华书局出版社,出版了曹雪芹写的红楼梦 package com.design.builder; public class TestMain { public static void main(String[] args) { BookBuilder bookBuilder = new ZhongHuaBookBuilder(); Publisher publisher = new Publisher(bookBuilder); Book book = publisher.makeBook("红楼梦", "曹雪芹"); System.out.println(book); } } ### 建造者模式总结 ### **适用场景:** 需要生成的产品对象内部结构复杂(包含很多成员变量) 需要生成的产品对象的属性相互依赖,且需要指定其生成顺序 隔离复杂对象的创建和使用,且相同的创建过程可创建不同的产品 对象的创建过程独立于创建该对象的类 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dzanp6Y2Jx_size_16_color_FFFFFF_t_70]: /images/20211210/8d0b41b4b93a4a3fbf52e516bfca5899.png
相关 建造者模式 定义 将一个复杂对象的构造与它的表示分离,是的同样的构建过程可以创建不同的表示。 类型:创建型 建造者模式与工厂模式有些类似: 建造者更注重:方法的调用顺序,关心创 「爱情、让人受尽委屈。」/ 2022年02月15日 19:25/ 0 赞/ 224 阅读
相关 建造者模式 [2019独角兽企业重金招聘Python工程师标准>>> ][2019_Python_] ![hot3.png][] 1、产品类 package com.hhdys r囧r小猫/ 2022年01月14日 22:37/ 0 赞/ 189 阅读
相关 建造者模式 建造者模式,又称为生成器模式,是一种较为复杂、使用频率不高的创建型模式。它为客户端返回的不是一个简单的产品,而是有多个部件组成的复杂产品。以手机为例,建造者模式返回的是一个完整 谁践踏了优雅/ 2021年12月10日 18:29/ 0 赞/ 195 阅读
相关 建造者模式 建造者模式 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 柔光的暖阳◎/ 2021年09月29日 16:04/ 0 赞/ 276 阅读
相关 建造者模式 找商家买电脑: public class Computer { private String brand; private String s 拼搏现实的明天。/ 2021年09月24日 07:52/ 0 赞/ 327 阅读
相关 建造者模式 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 一个 Buil 向右看齐/ 2021年09月17日 01:24/ 0 赞/ 307 阅读
相关 建造者模式 4.建造者模式 ![70][] class Customer { static void Main(string[] a 女爷i/ 2021年09月16日 23:52/ 0 赞/ 319 阅读
相关 建造者模式 建造者模式 1. 简介 2. 建造者模式介绍 2.1 定义 2.2 建造者模式的优点 2.3 建造者模式的缺点 ﹏ヽ暗。殇╰゛Y/ 2021年08月30日 22:18/ 0 赞/ 435 阅读
相关 建造者模式 一 点睛 将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naG 怼烎@/ 2021年07月24日 18:01/ 0 赞/ 371 阅读
相关 建造者模式 造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 一个 Bu... 小灰灰/ 2020年06月13日 05:36/ 0 赞/ 702 阅读
还没有评论,来说两句吧...