java构建器
来源:互联网 发布:网络信号大师 编辑:程序博客网 时间:2024/06/05 08:12
Java构建器
构建复杂对象的方式。
静态工厂和构造器都不能很好的构建大量的可选参数,当一个类创建时需要多个参数且不是所有参数都必须时,有以下解决方案:
一惯采用充重叠构造器模式——在这种模式下,你提供第一个只有必要参数的构造器,第二个构造器有一个可选参数,第三个有两个可选参数,依次类推。
- 缺点: 当有许多参数时,客户端的代码难写且难以阅读。
通过JavaBeans模式
创建无参的构造器,通过setter方案来对属性进行赋值
//People类 public class People{ private int higher; private int weighter; ... public setHiger(int higher){ this.higher = higher; } .... }
//People类包含人的基本属性 先创建无参people对象 People people = new People(); //属性赋值 people.setHiger("178"); prople.setweighter("54");
- 缺点:构造过程分到几个调用中,在构造过程中JavaBean可能处于不一致的状态。类无法仅仅通过检验构造器参数的有效性来保证一致性。需要额外保证其线程安全。
Bulider模式
一个构建QQ邮箱bean实例
package com.netty.mail;/** * Created by Forgot on 2017/7/8. */public class MailMessage {private String topic;private String content;private String qq_email;//是否发送附件 默认不发送private boolean flag = false;//文件位置private String filepath;public String getFilepath() { return filepath;}public void setFilepath(String filepath) { this.filepath = filepath;}public boolean isFlag() { return flag;}public void setFlag(boolean flag) { this.flag = flag;}public String getQq_email() { return qq_email;}public void setQq_email(String qq_email) { this.qq_email = qq_email;}public String getTopic() { return topic;}public void setTopic(String topic) { this.topic = topic;}public String getContent() { return content;}public void setContent(String content) { this.content = content;}public static class Bulider { private String topic; private String content; private boolean flag = false; private String qq_email; private String filepath; public Bulider topic(String val) { topic = val; return this; } public Bulider content(String val) { content = val; return this; } public Bulider qq_email(String val) { qq_email = val; return this; } public Bulider flag(boolean val){ flag = val; return this; } public Bulider filepath(String val){ filepath = val; return this; } public MailMessage build(){ return new MailMessage(this); }}private MailMessage(Bulider bulider){ topic = bulider.topic; content = bulider.content; qq_email = bulider.qq_email; flag = bulider.flag; filepath = bulider.filepath;}}
阅读全文
1 0
- 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 学习笔记《二》 构建器
- 利用Github+Hexo轻松搭建个人博客
- 我录制的《Java之IO , BIO , NIO , AIO 知多少?》视频教程发布了
- QML ScrollView使用Rectangle没有下拉条解决方法
- 4关于管理和监控工具
- 第九天
- java构建器
- 清除浮动的几种方法
- thinkphp3.2处理多张图片上传(已成功)
- 找有最多个约数的数(数论)
- matplotlib绘图基础
- 异常处理
- 可伸缩性/可扩展性(Scalable/scalability)
- MySQL5.7密码list中password变了为authentication_string
- 《Inside C#》笔记(十三) 多线程 上