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

免费b站在线观看人数在哪儿找到沧州seo包年优化软件排名

免费b站在线观看人数在哪儿找到,沧州seo包年优化软件排名,企业网站排版规则,建设网站商城后台系统目录 1. 概念 2. 代码实现 3. 应用场景 建造者模式(Builder)是创建型设计模式的最后一个,但是确实在平时开发过程中或者阅读源码过程中是十分常见的,难度在我来看是比较适中的,理解起来的也比较轻松,并且平时我们在编码过程中也…

       

目录

1. 概念

2. 代码实现

3. 应用场景


        建造者模式(Builder)是创建型设计模式的最后一个,但是确实在平时开发过程中或者阅读源码过程中是十分常见的,难度在我来看是比较适中的,理解起来的也比较轻松,并且平时我们在编码过程中也可以灵活的运用它。

1. 概念

        建造者模式允许你通过一步一步构建复杂对象的过程来创建不同的表示。这种模式将复杂的构造逻辑封装在单独的类中(即建造者),从而使主类可以专注其自身的职责。以下是建造者模式的一些关键点:

  • 分离复杂对象的构建过程:将复杂对象的构建过程与它的表示分离
  • 控制对象的创建步骤:允许以不同的顺序或方式构建对象
  • 避免构造函数参数过多:当一个类有多个构造参数时,使用建造者模式可以使代码更清晰

2. 代码实现

这里我们以建造一个Phone类为例,Phone中有cpu、mem、disk、camera属性(如上述类图所示),那么我们创建对象时,其实对于属性的构建顺序是没有要求的,同时它的属性也较多,我们就可以使用建造类对其的创建方式进行分离。

AbstractPhoneBuilder类(注意,这里的抽象类只是为了更规范,其实你可能发现有没有此类都不会影响实现)

/*** 抽象建造者*/
public abstract class AbstractBuilder  {Phone phone;abstract AbstractBuilder customCpu(String cpu);abstract AbstractBuilder customMem(String mem);abstract AbstractBuilder customDisk(String disk);abstract AbstractBuilder customCam(String cam);Phone getProduct(){return phone;}}

Phone类

public class Phone {protected String cpu;protected String mem;protected String disk;protected String cam;@Overridepublic String toString() {return "Phone{" +"cpu='" + cpu + '\'' +", mem='" + mem + '\'' +", disk='" + disk + '\'' +", cam='" + cam + '\'' +'}';}public String getCpu() {return cpu;}public String getMem() {return mem;}public String getDisk() {return disk;}public String getCam() {return cam;}
}

XiaoMiBuilder类

public class XiaomiBuilder  extends AbstractBuilder{public XiaomiBuilder(){phone = Phone.builder().build();}/**** @param cpu*/@OverrideAbstractBuilder customCpu(String cpu) {phone.cpu = cpu;return this;}@OverrideAbstractBuilder customMem(String mem) {phone.mem = mem;return this;}@OverrideAbstractBuilder customDisk(String disk) {phone.disk = disk;return this;}@OverrideAbstractBuilder customCam(String cam) {phone.cam = cam;return this;}
}

MainTest类

public class MainTest {public static void main(String[] args) {AbstractBuilder builder = new XiaomiBuilder();//建造这个手机
//        builder.customMem("16G");
//        builder.customDisk("1T");
//        builder.customCam("2亿");
//        builder.customCpu("骁龙8个8");//链式建造者 SwaggerPhone phone = builder.customCpu("骁龙8个8").customCam("2亿").customDisk("1T").customMem("16G").getProduct();System.out.println(phone);Phone build = Phone.builder().cpu("1").mem("2").cam("3").disk("4").build();System.out.println(build);}
}

        以上我们可以看到,我们其实实现了一种链式调用的方式,这样方便开发者可以快速的通过层层构建直接创建出我们的对象,其实在一些源码或者开源的项目中,大家都采取了这种方式来进行调用,大大简化了代码的复杂度。

        同时,其实如果你作为一位经验丰富的开发者,你会知道在lombok这个插件中,我们可以在实体类上加入@Builder注解后,lombok就会自动为我们添加此类的建造者的创建方式,这样在一些简单的业务场景下,大大提高了开发人员的效率。

3. 应用场景

        建造者模式我开篇就提到了其在源码的常见程度,所以我列举一些常见的应用:

  • StringBuilder类
  • Swagger中的ApiBuilder
  • 阿里云或者腾讯云中第三方的请求构建等
  • ...
http://www.dtcms.com/wzjs/512398.html

相关文章:

  • 建设电影网站需要什么百度推广多少钱一天
  • 网站开发需要大学吗谷歌广告投放教程
  • 杭州建站宁德市人社局
  • 杭州营销型网站设计企业网络营销推广方案
  • 下载织梦做网站软件企业网络搭建方案
  • 公司网站哪里好群站优化之链轮模式
  • 昆明做网站建设公司磁力天堂torrentkitty
  • 关于我们做网站深圳宝安seo外包
  • 网络规划设计师视频百度网盘优化大师优化项目有哪些
  • 5g建设多少网站seo网络推广怎么做
  • wordpress+上传权限设置苏州网站优化排名推广
  • 网站论坛做斑竹网站建设在线建站
  • 东莞网站建设策划西安疫情最新数据消息5分钟前
  • 济南行业网站开发石家庄新闻最新消息
  • 做网站空间 阿里云什么叫软文推广
  • IDC网站用什么软件建站长统计代码
  • 建设电影网站如何盈利免费投放广告的平台
  • 南阳网站推广排名网站推广策划书
  • 福州专业网站建设推广费用打开百度app
  • 苏州做网站公司电话信息流广告有哪些投放平台
  • 公司网站怎么做推广百度网盘怎么找资源
  • 网站建站客户需求表单国外seo比较好的博客网站
  • 哪些网站做的好处搜索引擎哪个最好用
  • 客户都不愿意做网站域名注册流程
  • wordpress 下载模板简述网站内容如何优化
  • 做网站域名怎么选有利于seo事件营销案例
  • 上海大型网站制作自媒体135免费版下载
  • 微信支付申请网站暂未完善建设成长电影在线观看免费
  • 近年来政府网站的建设情况网站查询系统
  • 深圳网站建设商家长沙市网站制作