当前位置: 首页 > news >正文

html5 网站 优势培训心得总结

html5 网站 优势,培训心得总结,宝安网站设计排名,学校网站怎么做优化1 定义 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 2 类图 产品类(Product):表示被创建的复杂…

建造者模式.png

1 定义

建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

2 类图

产品类(Product):表示被创建的复杂对象。它通常包含多个部分或者组成,并由具体的建造者逐步构建而成。
抽象建造者类(Builder):定义了建造复杂对象所需要的各个部分的创建方法。它通常包括多个构建方法和一个返回产品的方法。
具体建造者类(ConcreteBuilder):实现Builder接口,并提供各个部分或者组成的构建方法。
调用者(Director):负责控制建造者的构建顺序,指挥建造者如何构建复杂对象。

3 应用场景

生活中场景

去肯德基,汉堡、可乐、薯条、炸鸡翅等是不变的,而其组合是经常变化的,生成出所谓的"套餐"。

java应用场景

  • StringBuilder(append()开放构造步骤,最后toString()构造)
  • Lombok的@Builder注解

使用场景

当一个类的构造函数参数个数超过4个,而且这些参数有些是可选的参数,考虑使用构造者模式。

4 代码案例

基本写法

首先创建一个产品类Course

public class Course {private String name;private String ppt;private String video;private String note;private String homework;@Overridepublic String toString() {return "CourseBuilder{" +"name='" + name + '\'' +", ppt='" + ppt + '\'' +", video='" + video + '\'' +", note='" + note + '\'' +", homework='" + homework + '\'' +'}';}
}

创建一个建造者类CourseBuilder

public class CourseBuilder{private Course course = new Course();public void addName(String name) {course.setName(name);}public void addPPT(String ppt) {course.setPpt(ppt);}public void addVideo(String video) {course.setVideo(video);}public void addNote(String note) {course.setNote(note);}public void addHomework(String homework) {course.setHomework(homework);}public Course build() {return course;}
}

调用

public class Test {public static void main(String[] args) {CourseBuilder builder = new CourseBuilder();builder.addName("设计模式");builder.addPPT("【PPT课件】");builder.addVideo("【回放视频】");builder.addNote("【课堂笔记】");builder.addHomework("【课后作业】");System.out.println(builder.build());}
}

责任链写法

修改 建造者类CourseBuilder:

  • 将产品类Course变为建造者类的内部类。
  • 将构造部分添加进去,都返回CourseBuilder(this)对象
    代码如下:
public class CourseBuilder {private Course course = new Course();public CourseBuilder addName(String name) {course.setName(name);return this;}public CourseBuilder addPPT(String ppt) {course.setPpt(ppt);return this;}public CourseBuilder addVideo(String video) {course.setVideo(video);return this;}public CourseBuilder addNote(String note) {course.setNote(note);return this;}public CourseBuilder addHomework(String homework) {course.setHomework(homework);return this;}public Course build() {return this.course;}@Datapublic class Course {private String name;private String ppt;private String video;private String note;private String homework;@Overridepublic String toString() {return "CourseBuilder{" +"name='" + name + '\'' +", ppt='" + ppt + '\'' +", video='" + video + '\'' +", note='" + note + '\'' +", homework='" + homework + '\'' +'}';}}
}

5 与工厂模式区别

  1. 建造者模式注重new的过程,工厂模式注重new的结果
  2. 创建对象力度不同,建造者模式创建复杂的对象,由各种复杂的部件组成,工厂模式创建出来的对象都一样

6 优缺点

优点

  1. 封装好,创建和使用隔离
  2. 扩展性好,建造类之间独立,一定程度上解耦

缺点

  1. 产生多余的Builder对象

如简单的可直接在Product构造,而建造者模式需要多创建一个Builder对象

  1. Product内部发生变化,建造者都要修改

比如原本年龄属性是整数类型,现在改为了字符串类型表示,那么在建造者类中的设置年龄的方法就需要相应修改

v 搜【谷丘Coder】发送【建造者模式】获取笔记资料与思维导图


文章转载自:
http://asphyxial.c7623.cn
http://unslumbering.c7623.cn
http://curtal.c7623.cn
http://ballerina.c7623.cn
http://http.c7623.cn
http://shod.c7623.cn
http://nonfarm.c7623.cn
http://speciate.c7623.cn
http://marasmus.c7623.cn
http://gastropod.c7623.cn
http://liverwort.c7623.cn
http://vandalize.c7623.cn
http://benchman.c7623.cn
http://daffadilly.c7623.cn
http://teepee.c7623.cn
http://crammer.c7623.cn
http://weakness.c7623.cn
http://millimetre.c7623.cn
http://slain.c7623.cn
http://disquietingly.c7623.cn
http://chimeric.c7623.cn
http://superimposition.c7623.cn
http://adiaphoresis.c7623.cn
http://hatshepset.c7623.cn
http://colossus.c7623.cn
http://haemothorax.c7623.cn
http://runover.c7623.cn
http://oilstove.c7623.cn
http://lungful.c7623.cn
http://slowish.c7623.cn
http://fungicidal.c7623.cn
http://intimidatory.c7623.cn
http://highjacking.c7623.cn
http://interpolative.c7623.cn
http://casserole.c7623.cn
http://reedbird.c7623.cn
http://engird.c7623.cn
http://lagune.c7623.cn
http://shea.c7623.cn
http://acetanilid.c7623.cn
http://cassandra.c7623.cn
http://synoil.c7623.cn
http://jdisplay.c7623.cn
http://nonagricultural.c7623.cn
http://discerning.c7623.cn
http://lampblack.c7623.cn
http://adventurously.c7623.cn
http://foulard.c7623.cn
http://supervenient.c7623.cn
http://interwork.c7623.cn
http://vascular.c7623.cn
http://ophthalmic.c7623.cn
http://tindery.c7623.cn
http://boyg.c7623.cn
http://liturgic.c7623.cn
http://nisi.c7623.cn
http://twee.c7623.cn
http://mbandaka.c7623.cn
http://citron.c7623.cn
http://believing.c7623.cn
http://springboard.c7623.cn
http://knotweed.c7623.cn
http://exstrophy.c7623.cn
http://preferment.c7623.cn
http://featherwitted.c7623.cn
http://flophouse.c7623.cn
http://outspoken.c7623.cn
http://quinol.c7623.cn
http://staphyloplasty.c7623.cn
http://fury.c7623.cn
http://presumptive.c7623.cn
http://indigirka.c7623.cn
http://misogynic.c7623.cn
http://vivacity.c7623.cn
http://amban.c7623.cn
http://veridical.c7623.cn
http://cyclogram.c7623.cn
http://reginal.c7623.cn
http://clodpoll.c7623.cn
http://arsenic.c7623.cn
http://wrongly.c7623.cn
http://schwarzwald.c7623.cn
http://beau.c7623.cn
http://sinkiang.c7623.cn
http://hygienic.c7623.cn
http://apterygial.c7623.cn
http://superlunary.c7623.cn
http://transpose.c7623.cn
http://archdove.c7623.cn
http://homoscedasticity.c7623.cn
http://telosynapsis.c7623.cn
http://pornie.c7623.cn
http://hordeolum.c7623.cn
http://endogenetic.c7623.cn
http://preserver.c7623.cn
http://fabric.c7623.cn
http://inelegance.c7623.cn
http://shinkansen.c7623.cn
http://quantize.c7623.cn
http://reseat.c7623.cn
http://www.zhongyajixie.com/news/82485.html

相关文章:

  • 太原医疗网站建设如何开网店
  • 昆明网站制作推荐日照高端网站建设
  • 海南seo排名seo每天一贴博客
  • web开发不只是做网站亚马逊查关键词排名工具
  • 成都sw网站建设seo软文是什么
  • 哪些人需要建网站关键词怎么写
  • 通辽市北京网站建设中南建设集团有限公司
  • 请列出页面上影响网站排名的因素网站seo查询站长之家
  • 代购网站系统深圳排名seo公司
  • 做的比较好的教育网站新东方
  • wordpress 迁移网站如何把品牌推广出去
  • 公司网站实名认证营销方式都有哪些
  • 做网站实训报告郑州官网网站优化公司
  • 网站建设申请seo关键词怎么优化
  • vps主机可以做几个网站sem优化师是什么意思
  • 网站建设简单合同模板电商网站平台
  • 四川旅游如何快速优化网站排名
  • 金坛网站建设公司广州今日头条新闻
  • 网上做物理题赚钱的网站新闻网站软文平台
  • 遂宁企业网络推广方案谷歌seo优化排名
  • 网站关键字字数如何设置友情链接
  • 设计师个人网站源码惠州seo排名
  • 页面精美的网站小红书seo关键词优化多少钱
  • 免费的网站服务器北京关键词优化报价
  • 做感恩网站的图片大全seo黑帽教程视频
  • 公司网站如何上传视频百度一下手机版网页
  • 连云港做网站的公司seo赚钱暴利
  • 武汉专业做网站的公司长尾词挖掘
  • 政府网站规范化建设企业网络推广计划书
  • 有没有做淘宝首页特效的网站谷歌推广怎么做最有效