Java 构建器
来源:互联网 发布:linux判断目录是否存在 编辑:程序博客网 时间:2024/06/03 12:48
构建器是什么?百度后————
是构造方法!
Java默认的构建器是什么,想必大家也明白了吧。
若创建一个没有构建器的类,则编译程序会帮我们自动创建一个默认构建器。
当创建对象需要传入多个参数的时候我们通常会根据参数的数量写不同的构造器,具体如下
public A(int a){}
public A(int a, int b){}
public A(int a, int b, int c){}
根据不同的参数调用不同的构造器,但是当参数多了的时候,这种方式不够灵活,所以会实现动态传参的方法
public A(){}
public void seta(int a){}
public void setb(int b){}
public void setc(int c){}
这种方式提高了传参的可读性,也提高了传参的灵活性,但是会增加代码行数,同时在多线程异步执行的时候导致奇怪的错误。
有没有办法解决呢?既能提高代码可读性,提高参数灵活性,又不会增加代码行数,并保证线程安全呢?
构建器模式登场,先看代码:
public class A {
private int a;
private int b;
private int c;
public static class Builder { private int a; private int b; private int c; public Builder(){} public Builder seta(int a) { this.a = a; return this} public Builder setb(int b) { this.b = b; return this} public Builder setc(int c) { this.c = c; return this} public A build() { return new A(this)}}private A(Builder builder) { this.a = builder.a; this.b = builder.b; this.c = builder.c;}
}
调用构造方法:
A a = new A.Builder().seta(1).setb(2).setc(3).build();
这样就解决了以上所说的问题,但是他的缺点同样也是存在的,就是:
***1.构造器写起来很复杂
2.创建对象开销比较大
所以构建器模式只适用于需要传入很多种情况参数的时候,比如大于4种参数的配合,才比较划算。
而且值得注意的是:最好在类的设计之初就考虑是否使用构建器,否则日后扩展起来新构建器旧构造器一起用维护起来不方便。*
- Java构建器
- Java构建器模式
- Java 构建器
- java-构建器Builder
- Java构建器
- Java 构建器
- java构建器
- java构建器模式
- java 构建器执行顺序
- JAVA构建器Builder模式
- Java构建器(Builder)
- Java总结:构建器的调用顺序
- java中构建器的初始化顺序
- SQL查询Java构建器:Object Query
- java 构建器的调用顺序
- Java-构建器模式(Buider模式)
- Java优化考虑构建器创建对象
- Effective Java 学习笔记《二》 构建器
- “破锣摇滚”乐队 Raucous Rockers——动态规划
- java-类与对象(访问对象的属性和行为)、
- iOS面试题2017
- 言谈礼仪
- 03_JDK和JRE和JVM
- Java 构建器
- 添加mapper映射文件时,无法启动服务器
- 网络协议篇
- Android 对ScrollView滚动监听,实现美团、大众点评的购买悬浮效果
- 生活礼仪
- 一个不错的shell 脚本教程 入门级
- C# 获取字符串字节数
- CI框架中,判断post,ajax,get请求的方法
- Qt关联文件查找命令