`
wangchao_17915566
  • 浏览: 167512 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

了解建造者模式

阅读更多

     了解建造者模式:

     在软件系统中,经常会遇到一个创建工作,一个复杂对象由各部分子对象用一定算法构成,由于需求改变,这个复杂对象各个部分面临剧烈变化的,但组合在一起相对稳定。

     个人理解:要去商店买吃的,商店有汉堡,可乐,鸡腿等等。顾客可以说自己的需要,告诉服务生,服务生分配给你所需要的东西。 

    //可乐 public class CocaCola { private String size; public String getSize() { return size; } public void setSize(String size) { this.size = size; } } //鸡腿 public class Drumstick { private String size; public String getSize() { return size; } public void setSize(String size) { this.size = size; } } //汉堡 public class Hamburger { private String size; public String getSize() { return size; } public void setSize(String size) { this.size = size; } }


 


服务生提供

public class Waiter { // 餐1 public static void meal1(){ new Drumstick(); new CocaCola(); }; // 餐2 public static void meal2(){ new Drumstick(); new Hamburger(); }; // 餐3 public static void meal3(){ new Hamburger(); }; }


 
顾客从服务生那得到餐

 

public class Client { //选择用餐 public void userMeal(){ Waiter.meal1(); } }

 

也可以选择用餐。

  从这个例子来看,用户可以选择不同的餐,服务生也可以任意搭配,并且该店可以改变食物的属性,例如大小,生熟,等等这就相当于小对象的算法。这并不影响顾客的需要。

   这个模式可以提高松耦合。

 

分享到:
评论

相关推荐

    c++ 建造者模式实例

    如果我们用了建造者模式,那么用户就只需指定需要建造的类型就可以得到它们,而具体建造的过程和细节都不需要了解。 下面的例子,以求职人来公司应聘,HR需要把他的求职简历输入电脑做存档。 首先HR是不可能让求职...

    建造者模式(Builder Pattern)原理图

    建造者模式是一种创建型设计模式,用于简化复杂对象的创建过程。以下是建造者模式的关键概念和步骤: 1. **分离复杂对象的构建和表示**:建造者模式将一个复杂对象的构建过程与其最终的表示形式分离开来。这样做的...

    深入理解Android中的建造者模式

    在Android开发过程中,我发现很多安卓源代码里应用了设计模式,比较常用的有适配器模式(各种adapter),建造者模式(Alert Dialog的构建)等等。虽然我们对大多数设计模式都有所了解,但是在应用设计模式的这个方面,...

    【23种设计模式专题】四 建造者模式

    通过上一章的学习,我们已经知道原型模式的浅克隆和深克隆,本文来了解一下建造者模式。 定义 建造者模式属于创建型模式,建造者模式是23种设计模式的一种,将一个复杂对象的构建与它的表示分离,使得同样的构建过程...

    建造者模式源代码---BuilderDemo.rar

    这是一个简单的建造者模式的开发demo,对于想了解设计模式的童靴还是有一定的学习和借鉴的作用。源代码都是经过自己测试,完全可用

    深入分析JAVA 建造者模式

    主要介绍了JAVA 建造者模式的的相关资料,文中讲解非常详细,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下

    Python3实现建造者模式的示例代码

    使用建造者模式可以使复杂的过程层次明了、清晰,把对象的创建以及使用进行了解耦。实际上从代码的角度上看,是进行了多次封装,使代码结构更为规范合理,层次结构更加鲜明。 在一个复杂的对象中,需要编写大量的...

    设计模式代码和报告

    创建型模式可分为以下5种模式:单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。 3.2原型模式是一种创建型设计模式,Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的...

    精通python设计模式与源码

    首部分介绍处理对象创建的设计模式,包括工厂模式、建造者模式、原型模式;第二部分介绍处理一个系统中不同实体(类、对象等)之间关系的设计模式,包括外观模式、享元模式等;第三部分介绍处理系统实体之间通信的...

    GoF 的 23 种设计模式

    建造者(Builder)模式:将一个复杂对象分解成多个相对简单的部分,然后根据不同需要分别创建它们,最后构建成该复杂对象。 代理(Proxy)模式:为某对象提供一种代理以控制对该对象的访问。即客户端通过代理间接地...

    Java的23种设计模式疯狂Java总结.doc

    设计模式3 1.1 创立型模式4 1.1.1 工厂方法4 1.1.2 抽象工厂6 1.1.3 建造者模式10 1.1.4 单态模式13 1.1.5 原型模式15 1.2 构造型模式17 1.2.1 适配器模式17 1.2.2 桥接模式19 1.2.3 组合模式23 1.2.4 装饰模式26 ...

    design_patterns:设计模式研讨会的Labs + Slides-基于Java,至少要开始

    使用设计模式概述“使用设计模式”课程提供了有关如何使用“设计模式”来设计和重构软件系统的动手实践视图。 本课程首先简要介绍了现代软件设计。...建造者和创造方法结构模式适配器和外墙复合材料行为模式观察者状态

    Android代码-Tamic_Retrofit

    反射,依赖注入,代理, 建造者模式,线程池队列, 接口回调等 用法 配置gradle >compile 'com.tamic:tamicLibrary:1.0.2' 实例化Tamic (Retrofit) Tamic tamic = new Tamic.Builder(MainActivity.th

    传智播客扫地僧视频讲义源码

    本教程共分为5个部分,第一部分是C语言提高部分,第二部分为C++基础部分,第三部分为C++进阶部分,第四部分为C、C++及数据结构基础部分,第五部分为C_C++与设计模式基础,内容非常详细. 第一部分 C语言提高部分目录...

    基于Java实现的(GUI)飞机大战小游戏【100013206】

    在这个课程设计中,使用类、抽象类和接口,采用Java的编程思想和建造者设计模式做成了一个基于JFrame窗体和鼠标运动的小游戏,打开游戏后玩家可通过移动鼠标来控制己方飞机移动,不仅可以击毁敌机也可以躲避敌机,...

    uml-diagram-for-python-design-pattern-examples:用Python编写的GoF设计模式示例的UML图列表

    建造者 工厂方法 Python代码执行结果 Python代码执行结果 Python代码执行结果 原型 辛格尔顿 Python代码执行结果 Python代码执行结果 结构模式 适配器 桥 合成的 Python代码执行结果 Python代码执行结果 ...

    uml-diagram-for-kotlin-design-pattern-examples:用Kotlin编写的GoF设计模式示例的UML图列表

    行为模式 责任链命令口译员迭代器调解员纪念观察者状态战略模板方法游客创作模式 抽象工厂建造者工厂方法原型辛格尔顿结构模式 适配器桥合成的装潢师正面轻量级代理人参考Gamma,E。等。 设计模式:可重用的面向对象...

    design_patterns:以 ruby​​ 开头的各种语言的设计模式

    查看各个模式文件夹以了解和解释它们是什么、如何创建它们以及为什么要这样做。 好吧。 这个 repo 从 Ruby 开始。 最终,我将添加各种其他语言,例如 Objective-C、Swift、Javascript、C/C++ 以及其他任何我喜欢的...

    uml-diagram-for-java-design-pattern-examples:用Java编写的GoF设计模式示例的UML图列表

    建造者 工厂方法 原型 辛格尔顿 结构模式 适配器 桥 合成的 装潢师 正面 轻量级 代理人 参考 Gamma,E。等。设计模式:可重用的面向对象软件的元素,Addison-Wesley,1994年 纪由希用Java学习设计模式[日语],软银...

Global site tag (gtag.js) - Google Analytics