Builder模式
来源:互联网 发布:js实现图片放大缩小 编辑:程序博客网 时间:2024/06/03 03:18
目的是为了解决使用构造器方法时排列组合爆炸及使用时的繁琐性,及调用JavaBean实现方法时的线程安全性问题。
public class NutritionFacts{ private int servingSize ; private int servings ; private int categories ; private int fat; private int sodium; private int carbohydrate; public static class Builder{ //required no default value private final int servingSize; private final int servings; //optional parameters initial default values private int categories = 0;//default value private int fat = 0; private int sodium = 0; private int carbohydrate = 0; public Builder(int ServingSize, int servings){ this.servingSize = servingSize; this.servings = servings; } public Builder categories(int val) { this.categories = val; } public Builder fat(int val){ this.fat = val; } public Builder sodium(int val){ this.sodium = val; } public Builder carbohydrate(int val){ this.carbohydrate = val; } //builder public NutritionFacts build() { return new NutritionFacts(this); } } private NutritionFacts(Builder builder){ servingSize = builder.servingSize; servings = builder.servings; categories = builder.categories; fat = builder.fat; sodium = builder.sodium; carbohydrate = builder.carbohydrate; }}
调用方式
NutritionFacts cocaCola = new NutritionFacts.Builder(240,8).categories(100).sodium(35).carbohydrate(27).build();
使用了Builder静态内部类,实现调用。并且使用一行代码调用的方式保证线程的安全性。
0 0
- builder 模式
- Builder模式
- Builder 模式
- Builder模式
- builder模式
- builder模式
- Builder模式
- builder模式
- Builder模式
- Builder 模式
- Builder 模式
- Builder模式
- Builder模式
- builder模式
- builder模式
- builder模式
- Builder模式
- Builder模式
- Hibernate读取配置文件,创建sessionFactory的执行过程以及用工具类优化
- Android Fragment 真正的完全解析(下)
- HTML5+原生javascript 卡片扑克旋转展开效果demo
- springmvc整合mybatis框架源码 bootstrap html5 mysql oracle maven SSM
- Linux ftp命令的使用
- Builder模式
- 方立勋_30天掌握JavaWeb_XML
- 资源隔离-systemd
- activiti,工作流,web流程设计器,SSM,activiti工作流
- Spring定时任务
- 云数据库 Memcache 版
- Android Studio出现安装APK错误 Failure [INSTALL_CANCELED_BY_USER]
- Lock外部锁
- Android Fragment 你应该知道的一切