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

免费做视频网站宁波seo的公司联系方式

免费做视频网站,宁波seo的公司联系方式,青岛专业网站制作,网站建设视频1.什么是建造者模式(Builder Pattern) 建造者模式(Builder Pattern)又叫生成器模式,是一种对象创建型模式之一,用来隐藏复合对象的创建过程,它把复合对象的创建过程加以抽象,通过子…

1.什么是建造者模式(Builder Pattern)

建造者模式(Builder Pattern)又叫生成器模式,是一种对象创建型模式之一,用来隐藏复合对象的创建过程,它把复合对象的创建过程加以抽象,通过子类继承和重载的方式,动态地创建具有复合属性的对象,从而达到代码复用性。
建造者模式将复杂对象的构建与对象的表现分离开来,这样使得同样的构建过程可以创建出不同的表现。

2.建造者模式的优点

在用户不知道对象的建造过程和细节的情况下就可以直接创建复杂的对象。

  • 用户只需要给出指定复杂对象的类型和内容;
  • 建造者模式负责按顺序创建复杂对象(把内部的建造过程和细节隐藏起来)

3.实现方法(1)

我们举一个例子:我们需要开发一款手机,参数有名称,cpu,屏幕,系统,我们用建造者模式来实现这个需求。
我们需要定义一个手机类:

class MobilePhone {//手机类private String name;//名称private String cpu;//处理器private String screen;//屏幕private String sysemtype;//系统public MobilePhone() {}public void setName(String name) {this.name = name;}public void setCpu(String cpu) {this.cpu = cpu;}public void setScreen(String screen) {this.screen = screen;}public void setSysemtype(String sysemtype) {this.sysemtype = sysemtype;}public String getName() {return name;}public String getCpu() {return cpu;}public String getScreen() {return screen;}public String getSysemtype() {return sysemtype;}public void tostring() {//打印方法System.out.println("名称:" + name + "\n处理器:" + cpu + "\n屏幕:" + screen + "\n系统:" + sysemtype);}
}

我们创建一个抽象的接口 用于创建手机

interface CreateMobilePhone {//接口 用于创建手机void CreateName(String name);void CreateCpu(String cpu);void CreateScreen(String screen);void CreateSystemtype(String systemtype);MobilePhone build();
}

创建一类手机产品 实现创建接口

class Honor implements CreateMobilePhone {//一类产品的手机 实现接口private MobilePhone mobilePhone;public Honor() {mobilePhone = new MobilePhone();}@Overridepublic void CreateName(String name) {mobilePhone.setName(name);}@Overridepublic void CreateCpu(String cpu) {mobilePhone.setCpu(cpu);}@Overridepublic void CreateScreen(String screen) {mobilePhone.setScreen(screen);}@Overridepublic void CreateSystemtype(String systemtype) {mobilePhone.setSysemtype(systemtype);}@Overridepublic MobilePhone build() {return mobilePhone;}
}

测试类:

//建造者设计模式
class Main {public static void main(String[] args) {Honor honor = new Honor();honor.CreateName("V10");honor.CreateCpu("kirin970");honor.CreateScreen("2k");honor.CreateSystemtype("EMUI9.1");create(honor).tostring();}public static MobilePhone create(CreateMobilePhone createMobilePhone){return createMobilePhone.build();}}输出:
名称:V10
处理器:kirin970  
屏幕:2k   
系统:EMUI9.1

4.实现方法(2)

我们还有第二种实现建造者模式的方法:
例如给出一个需求需要创建一个person类其中属性有name,sex,age,score。name,sex是必须给定,其余可有可无。
实现代码如下:

class Person {//新建person类private String name;//必须给private String sex;//必须给private int age;//可给可不给private int score;//可给可不给public Person(String name,String sex,int age,int score){//构造方法this.name=name;this.sex=sex;this.age=age;this.score=score;}public String getName() {return name;}public String getSex() {return sex;}public int getAge() {return age;}public int getScore() {return score;}
}

最关键的部分如下:

class Builder {private String name;private String sex;private int age;private int score;public Builder setName(String name) {this.name = name;return this;}public Builder setSex(String sex) {this.sex = sex;return this;}public Builder setAge(int age) {this.age = age;return this;}public Builder setScore(int score) {this.score = score;return this;}public Person create() {return new Person(name, sex, age, score);}
}

我们创建了一个builder类,定义每一个方法都返回builder对象,调用create方法实例化Person对象。
下面是测试类:

//建造者设计模式
class Main {public static void main(String[] args) {Builder builder=new Builder();builder.setName("MRyan").setSex("man").setAge(20).setScore(99);Person person=builder.create();System.out.println(person.getName());}
}

输出:MRyan

5.总结

我们通过上面的例子说明,会发现使用建造者模式在创建复杂对象的时候,把创建对象成员和装配方法分离出来,放在建造者类中去实现,用户使用该复杂对象时,不用理会它的创建和装配过程和内部细节,只关心它的表示形式。不过我们也发现了缺点,如果产品的内部变化复杂,可能会导致需要定义很多具体建造者类来实现这种变化,导致系统变得很庞大。

在这里插入图片描述

http://www.lbrq.cn/news/2398879.html

相关文章:

  • 网站上内容列表怎么做东莞网络推广培训
  • 制作网页要钱seo站长之家
  • 内存数据库 网站开发网络营销方式方法
  • 怎么修改网站后台路径惠州网站关键词排名
  • 怎么做盗号网站手机腾讯效果推广
  • 建立网站做家教辅导国外网页模板
  • 遵义市建设局网站官网搜索引擎优化的基本手段
  • 台州网站建设费用网络平台的推广方法
  • 企业网站建设的层次怎么用模板做网站
  • 建立微信商城网站互动营销案例都有哪些
  • xp系统做网站服务器2022年近期重大新闻事件
  • 深圳做网站的公司 cheungdom网页设计框架
  • 爱做的小说网站南京seo推广公司
  • 怎么做网站卡盟seo用什么工具
  • 建设部网站八大员查询seo优化快排
  • 网站建设和管理制度seo优化器
  • 模板建站系统宁波网络推广方式
  • 网站后台费用北京seo诊断
  • 女人做一级a网站免费郑州seo外包v1
  • ppt模板背景图女装标题优化关键词
  • 那里做一元云购网站交换链接平台
  • 网站开发维护合同书seo关键词推广多少钱
  • 团购网站开发代码抚州网络推广
  • 拿自己爱人做网站如何对网站进行推广
  • 斐讯k2做网站网络优化器
  • 芜湖龙湖建设工程有限公司网站论坛seo招聘
  • 在网站写小说怎么做封面免费收录网站提交
  • 如何做影视网站百度seo文章
  • 王烨铭seo 优化教程
  • 帮客户做网站 没签合同咋办昆明网络营销
  • Linux操作系统之线程(三)
  • 网络包从客户端发出到服务端接收的过程
  • day25 力扣90.子集II 力扣46.全排列 力扣47.全排列 II
  • Spring Boot 与微服务详细总结
  • SPARKLE:深度剖析强化学习如何提升语言模型推理能力
  • 市场数据+幸存者偏差提问,有趣的思考?