Builder模式
来源:互联网 发布:hibernate注解sql 编辑:程序博客网 时间:2024/06/06 01:40
JavaBeans的缺点:当有许多参数的时候,且许多参数可以为空时,客户端代码就会很难编写,并且较难阅读
Builder模式可以将一个类的构建和表示进行分离。
Builder模式比重叠构造器模式更加冗长,因此它只有在很多参数的时候才使用。
简而言之,如果类的构造期或者静态工厂中具有多个参数,设计这种类时,Builder模式就是种很不错的选择,特别是当大多数参数都是可选的时候。与传统的重叠构造器模式相比,使用Builder模式的客户端代码将更容易阅读和编写,构建器也不JavaBeans更加安全。
构建对象时,如果碰到类有很多参数——其中很多参数类型相同而且很多参数可以为空时,采用Builder模式来完成可提高代码代码可读性。
public class NutritionFacts { private int servingSize; private int servings; private int calories; private int fat; private int sodium; private int carbohydrate; public static class Builder { // Required parameters private int servingSize; private int servings; //optional parameters - initialized to default values private int calories; private int fat; private int sodium; private int carbohydrate; public Builder(int servingSize,int servings){ this.servings = servings; this.servingSize = servingSize; } public Builder calories(int val){ calories = val; return this; } public Builder fat(int val){ fat = val; return this; } public Builder sodium(int val){ sodium = val; return this; } public Builder carbohydrate(int val){ carbohydrate = val; return this; } public NutritionFacts build(){ return new NutritionFacts(this); } } private NutritionFacts(Builder builder){ servings = builder.servings; servingSize = builder.servingSize; calories = builder.calories; fat = builder.fat; sodium = builder.sodium; carbohydrate = builder.carbohydrate; } public static void main(String[] args){ NutritionFacts cocaCola = new NutritionFacts.Builder(240,8).calories(100) .sodium(35).carbohydrate(27).build(); } }
阅读全文
0 0
- builder 模式
- Builder模式
- Builder 模式
- Builder模式
- builder模式
- builder模式
- Builder模式
- builder模式
- Builder模式
- Builder 模式
- Builder 模式
- Builder模式
- Builder模式
- builder模式
- builder模式
- builder模式
- Builder模式
- Builder模式
- selenium实战一:播放音悦台高清Mv
- RMAN--跨平台传输表空间
- 20171114|每日练习
- Java 修饰符整理
- Java学习笔记_Java的简介
- Builder模式
- github第二天总结
- 最短路径算法Floyd和Dijkstra整理
- Scrapy报错
- UDP TCP SCTP三者比较
- 数字图像处理,读懂频域处理的“傅里叶变换”
- 【干货#002】小程序开发最佳图标库:阿里图标库
- git--gitlab安装
- 【量化小讲堂-Python&Pandas系列15】完整策略框架:以均线策略为例