`
hanjava
  • 浏览: 32368 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

Build模式练习

阅读更多
/**
* Build模式练习
* @author Administrator
*
*/
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{
private int servingSize=0;
private int servings=0;
private int calories=0;
private int fat=0;
private int sodium=0;
private int carbohydrate=0;

public Builder servingSize(int val){
servingSize=val;
return this;
}

public Builder servings(int val){
servings=val;
return this;
}

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 build){
this.servingSize=build.servingSize;
this.servings=build.servings;
this.calories=build.calories;
this.fat=build.fat;
this.sodium=build.sodium;
this.carbohydrate=build.carbohydrate;
}

public static void main(String[] args) {
NutritionFacts facts=new NutritionFacts.Builder().servings(100).sodium(10).carbohydrate(20).build();
System.out.println(facts.servings+","+facts.sodium+","+facts.carbohydrate);
}
}
分享到:
评论

相关推荐

    Iterator Pattern(迭代模式)

    其他文件如`.classpath`、`.project`、`build.xml`、`Workspace.sws`等是Eclipse项目配置文件,它们与迭代模式的理论知识关系不大,主要用于项目的构建和管理。 ### 总结 迭代模式是设计模式中的重要成员,它简化了...

    JavaWeb上机练习7.zip

    6. **MVC模式**:Model-View-Controller模式是JavaWeb开发中的常见架构模式。在练习中,你可能需要实现模型、视图和控制器之间的交互,理解如何组织和分离业务逻辑、数据表示和用户界面。 7. **JDBC数据库操作**:...

    RecyclerView 通用适配器练习

    在创建RecyclerView时,首先要添加依赖项到build.gradle文件,并同步项目。接着,在XML布局文件中添加RecyclerView控件,设置其宽度和高度为match_parent,并为其指定一个ID。 然后,我们需要创建一个自定义的...

    exercicio-caelum:设计模式练习

    "exercicio-caelum"项目标题暗示这是一个关于设计模式的练习,特别是聚焦于"运动盲肠"(可能是项目的一个代号或比喻)。项目描述提到了“工厂”和“战略”两个设计模式,这表明我们要深入探讨这两个模式以及它们在...

    patternsExa:模式练习

    ###build 封装远离消费者构建类的知识,使用不同的策略创建复杂的对象。 ###factory 构建了一系列相关类。 ###factoryMethod 允许类请求接口的新实例,而无需类决定使用接口的哪个实现。 ###prototype 用于继承、...

    OnionPrac 2010 Build 9

    而竞答模式则鼓励学生积极参与,激发他们的学习热情,同时也能检测他们在团队合作中的沟通和解决问题的能力。 在个性化体验方面,OnionPrac 2010 Build 9的换肤功能不容忽视。用户可以根据个人喜好选择不同的皮肤,...

    devin练习库devin-master.zip

    这些练习可能覆盖了不同的编程语言、框架、算法或者设计模式,帮助学习者逐步掌握编程技巧和解决问题的能力。 由于没有提供具体的文件内容,我们无法详细讨论练习库的具体内容,但可以猜测其中可能包括以下几个方面...

    Hooked: How to Build Habit-Forming Products

    这是因为在重复的行为过程中,大脑会寻找节能模式,从而减少每次做出决策时消耗的认知资源。习惯的形成与奖赏回路密切相关,当某个行为反复与正面的结果联系在一起时,大脑便会开始期待这个结果,并且在触发条件下...

    《Head First 设计模式》资料精简版

    "White-Gold.zip"文件名没有直接对应的设计模式,但它可能包含与设计模式相关的补充材料,比如案例研究、练习题或者额外的代码示例。 总的来说,这份精简版资料提供了学习设计模式的良好起点,包括了理论讲解、代码...

    minecraftmod:初始练习模式

    初始练习模式 命令 在eclipse中使用“Client”进行测试 用./gradlew build 导出模组。 不要忘记更改 build.gradle 中的版本号。 安装 1.7.2 Forge 在 Minecraft Launcher 中: ** 设置 1.7.2 配置文件(创建配置...

    Kesci比赛练习.zip

    - **设计模式**:单例模式、工厂模式、装饰器模式等,用于提高代码的可读性和可维护性。 - **网络编程**:如果项目涉及网络交互,可能会用到HTTP请求、WebSocket通信等。 - **数据库操作**:如SQL查询、事务处理、...

    springboot+vue练习1

    8. **Vuex**:如果项目需要共享状态管理,开发者可能还会接触到Vuex,它是Vue的状态管理模式,用于集中管理组件间共享的状态。 9. **单元测试**:SpringBoot提供JUnit进行后端单元测试,Vue.js可以通过Jest或Mocha...

    Kotlin 实战项目练习

    2. **类型安全的Builder模式**:通过`build()`函数构建复杂对象,如`android.view.LayoutInflater.from(context).inflate(R.layout.your_layout, container, false)`。 3. **内联函数**:减少运行时开销,提升性能...

    云龙语音输入法 v2013 Build 0806.zip

    自动模式:语音打字时不需要按任何键,适用于经过语音训练向导练习且普通话比较标准的用户。 手动模式:语音打字时如果发现不是需要的汉字则不输出,如果是自己想要的汉字则按【Ctrl、1-9、-/ 】键或鼠标点击输出,...

    pattern-builder:模式生成器的练习

    在本案例中,我们关注的是"pattern-builder",它似乎是一个练习项目,目的是通过应用构建器模式来修复一个运行不顺畅的程序,并优化Avatar类的源代码。 构建器模式是GoF设计模式之一,主要用于复杂对象的创建。它的...

    电脑演奏家 V2006 build 668 绿色版

    对于初学者,软件可能提供基础的音乐理论教程和练习模式,帮助他们快速掌握音乐基础知识。同时,为了满足不同层次用户的需求,可能还包含了丰富的预设曲目,供用户欣赏或学习演奏。 再者,《电脑演奏家》作为一个...

    vue2 + vuex的项目,整个流程一目了然,麻雀虽小,五脏俱全,适合作为入门练习。

    这个项目主要用于 vue2 + vuex 的入门练习,另外推荐一个 vue2 比较复杂的大型项目,覆盖了vuejs大部分的知识点。目前项目已经完成。 ## 项目运行(nodejs 6.0+) ``` bash # 克隆到本地 git clone ...

    学习软件_英语学习_!001英文朗读王 5.35 Build 0324 (学习版)免费下载.zip

    其次,作为一款学习软件,它可能包含多种学习模式和练习设置。比如,用户可能可以选择不同的朗读速度,以适应不同水平的学习需求,从慢速朗读帮助理解每个单词,到快速朗读锻炼即时反应。此外,软件可能还提供跟读和...

    LearnSite教学平台 v1.1.0.1 build20111023 swfupload版.rar

    通过本平台的开发实践,促进教学模式的转变,降低课堂组织难度,提高教学效率和教学容量,完善教学评价,主要包含以下五方面的意义: 1、构建完善教师电子备课平台,促进教案的交流学习。 2、构建完善的学生作品...

    Build Machine Learning Systems with Python

    标题《Build Machine Learning Systems with Python》点出了书籍的核心内容,即使用Python语言构建机器学习系统。书籍适合那些有一定编程基础,尤其是在Python方面,以及对机器学习感兴趣的读者。机器学习是一门多...

Global site tag (gtag.js) - Google Analytics