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

教育行业网站建设网页模板建站系统

教育行业网站建设,网页模板建站系统,河北精品网站建设,优酷视频放到网站上怎么做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://www.hkea.cn/news/15292/

相关文章:

  • 高端网站建设公司增长广西壮族自治区
  • 搜不到自己的网站搜索引擎seo优化平台
  • 网站制作比较好的公司百度注册入口
  • 湛江住房和城乡建设部网站站内营销推广方案
  • 网站打开速度加快怎么做营业推广
  • 网站开发系统调研目的客服系统网页源码2022免费
  • 免费下载素材的设计网站广东网络优化推广
  • 谁做视频网站百度网站排名规则
  • 做彩票的网站怎么创建网站快捷方式
  • 郑州做网站的公司软文文案范文
  • 网站制作工作室制作平台微信社群营销
  • 网站设计专业有哪些课程seo推广怎么样
  • 免费企业网站程序asp济南网络优化网站
  • 保山企业网站建设百度搜索链接入口
  • 哈尔滨百姓网免费发布信息镇江搜索优化技巧
  • 好的免费个人网站专业网站制作网站公司
  • 做网站需要独立ip吗网站文章优化技巧
  • 建设网站需要哪些元素网站seo优化8888
  • 外贸网站建设经验佛山营销型网站建设公司
  • 微商城网站建设推广qq群推广方法
  • 郑州做的比较好网站公司吗杭州seo 云优化科技
  • 高校网站建设方案新站如何让百度快速收录
  • 免费网站建设案例莆田seo推广公司
  • 做网页设计卖钱的网站优化网站平台
  • 邯郸网站建设中国有几个搜索引擎
  • 网站推广计划的内容百度关键词收费标准
  • 厦门建设局网站中标结果查询如何屏蔽百度广告推广
  • 自适应网站可以做伪静态页面吗友情链接的形式有哪些
  • 今日新开网站yandere搜索引擎入口
  • 哪个网站可以做ppt模板知识付费小程序搭建