`
chjavach
  • 浏览: 461038 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
10.3  模式讲解 10.3.1  认识中介者模式 (1)模式的功能 中介者的功能非常简单,就是封装对象之间的交互。如果一个对象的操作会引起其它相关对象的变化,或者是某个操作需要引起其它对象的后续或连带操作,而这个对象又不希望自己来处理这些关系,那么就可以找中介者,把所有的麻烦扔给它,只在需要的时候通知中介者,其它的就让中介者去处理就可以了。        反过来,其它的对象在操作的时候,可能会引起这个对象的变化,也可以这么做。最后对象之间就完全分离了,谁都不直接跟其它对象交互,那么相互的关系,全部被集中到中介者对象里面了,所有的对象就只是跟中介者对象进行通信,相互之间不再有联系 ...
  10.2  解决方案 10.2.1  中介者模式来解决 用来解决上述问题的一个合理的解决方案就是中介者模式。那么什么是中介者模式呢? (1)中介者模式定义   (2)应用中介者模式来解决的思路 仔细分析上面的问题,根本原因就在于多个对象需要相互交互,从而导致对象之间紧密耦合,这就不利于对象的修改和维护。 中介者模式的解决思路很简单,跟电脑的例子一样,中介者模式通过引入一个中介对象,让其它的对象都只和中介对象交互,而中介对象知道如何和其它所有的对象交互,这样对象之间的交互关系就没有了,从而实现对象之间的解耦
10.1  场景问题 10.1.1  如果没有主板 大家都知道,电脑里面各个配件之间的交互,主要是通过主板来完成的(事实上主板有很多的功能,这里不去讨论)。试想一下,如果电脑里面没有主板,会怎样呢? 如果电脑里面没有了 ...
  9.3  模式讲解 9.3.1  认识原型模式 (1 )原型模式的功能 原型模式的功能实际上包含两个方面: 一个是通过克隆来创建新的对象实例 另一个是为克隆出来的新的对象实例复制原型实例属性的值 原型模式要实现的主要 ...
  9.2  解决方案 9.2.1  原型模式来解决 用来解决上述问题的一个合理的解决方案就是原型模式。那么什么是原型模式呢? (1 )原型模式定义   (2 )应用原型模式来解决的思路 仔细分析上面的问题,在saveOrd ...
  9.1  场景问题 9.1.1  订单处理系统 考虑这样一个实际应用:订单处理系统。 现在有一个订单处理的系统,里面有个保存订单的业务功能,在这个业务功能里面,客户有这么一个需求:每当订单的预定产品数量超过1000的 ...
研磨设计模式 的 前言 ——跟着cc学设计系列  《研磨设计模式》 配套源代码 ——跟着cc学设计系列  研磨设计模式之工厂方法模式-1 ——跟着cc学设计系列
8.3  模式讲解 8.3.1  认识生成器模式 (1)生成器模式的功能 生成器模式的主要功能是构建复杂的产品,而且是细化的,分步骤的构建产品,也就是生成器模式重在解决一步一步构造复杂对象的问题。如果光是这么认识生成器模式的功能是不够的。 更为重要的是,这个构建的过程是统一的,固定不变的,变化的部分放到生成器部分了,只要配置不同的生成器,那么同样的构建过程,就能构建出不同的产品表示来。 再直白点说,生成器模式的重心在于分离构建算法和具体的构造实现,从而使得构建算法可以重用,具体的构造实现可以很方便的扩展和切换,从而可以灵活的组合来构造出不同的产品对象。 (2)生成器模式的构成 ...
8.2  解决方案 8.2.1  生成器模式来解决 用来解决上述问题的一个合理的解决方案就是生成器模式。那么什么是生成器模式呢? (1)生成器模式定义   (2)应用生成器模式来解决的思路        仔细分析上面的实现,构建每种格式的数据文件的处理过程,这不就是构建过程吗?而每种格式具体的步骤实现,不就相当于是不同的表示吗?因为不同的步骤实现,决定了最终的表现也就不同。也就是说,上面的问题恰好就是生成器模式要解决的问题。 要实现同样的构建过程可以创建不同的表现,那么一个自然的思路就是先把构建过程独立出来,在生成器模式中把它称为指导者,由它来指导装配过程,但是不负责每步具体 ...
8.1  场景问题 8.1.1  继续导出数据的应用框架 在讨论工厂方法模式的时候,提到了一个导出数据的应用框架。 对于导出数据的应用框架,通常在导出数据上,会有一些约定的方式,比如导出成:文本格式、数据库备份形式、Excel格式、Xml格式等等。 在工厂方法模式章节里面,讨论并使用工厂方法模式来解决了如何选择具体导出方式的问题,并没有涉及到每种方式具体如何实现。 换句话说,在讨论工厂方法模式的时候,并没有讨论如何实现导出成文本、Xml等具体的格式,本章就来讨论这个问题。 对于导出数据的应用框架,通常对于具体的导出内容和格式是有要求的,假如现在有如下的要求,简单描述一下: ...
不知得罪了哪位朋友,盯着踩啊,提供个源代码而已,犯得着您老动用几十个马甲来死踩吗? 看看您的那些马甲,注册时间都连着呢,访问时间也挨着呢! 《研磨设计模式》一书的源代码已经整理好了,现提供各位朋友下载。   源代码的说明: 1:本源代码是《研磨设计模式》一书的配套源代码2:每个模式的示例源代码放在一个单独的文件夹下,以该模式的英文名称命名3:每个模式下分成多个example,按照书的示例顺序分别命名为example1、example2......以此类推4:每个模式的示例基本上都是完整的,您可以参考和任意使用5:基本上每个example里面都有Client文件, ...
《研磨设计模式》一书的源代码已经整理好了,现提供各位朋友下载。   源代码的说明: 1:本源代码是《研磨设计模式》一书的配套源代码2:每个模式的示例源代码放在一个单独的文件夹下,以该模式的英文名称命名3:每个模式下分成多个example,按照书的示例顺序分别命名为example1、example2......以此类推4:每个模式的示例基本上都是完整的,您可以参考和任意使用5:基本上每个example里面都有Client文件,可以对本example进行测试             比如使用Builder模式来构建保险合同对象的示例代码:   (1)保险合同的对象的示例代码如 ...
      看到有朋友在问:“哪里可以下载到研磨设计模式一书的源代码?”     这个会尽快整理一下,然后在博客上提供下载,敬请关注,谢谢大家的支持!          有一个好消息与大家分享:      接编辑最新通知,《研磨设计模式》一书的版权已经输出到台湾,台湾的出版界朋友浏览过本博客,受到他们的超级好评!          另外,有热心的朋友为研磨设计模式一书建立了一个QQ的qun,用以大家共同分享、学习和讨论之用,名称就是研磨设计模式  
   首先向各位长期支持我的朋友致以诚挚的感谢!《研磨设计模式》一书已经上市,具体的信息请参见上一篇博文,这里就不多说了,免得JE做出他们认为合理的举动。         研磨设计模式的前言,里面也有很多对大家有 ...
          首先感谢大家长久以来的支持和鼓励,没有你们的大力帮助,是很难坚持走到今天的,因此,向你们致以诚挚的感谢!           另外有很多朋友在博客里面、QQ里面询问,到底什么时候能够看到书,这里集中公告一下:           目前书已经上市,网店和书店应该都有了,当然,远一点的地方,可能书店要上得慢一点,过几天应该就会有的。     《研磨设计模式》一书已经上市,卓越网销售链接:http://www.amazon.cn/%E7%A0%94%E7%A3%A8%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E9%99%88%E8%8 ...
Global site tag (gtag.js) - Google Analytics