`
chjavach
  • 浏览: 464631 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
好消息,收到样书了,编辑说下周应该就可以进到书店了。   拍个照片,先睹为快:      再来一张:       有些厚,近800页,印刷质量还可以,双色也比较醒目和清晰。   拍的水平太差,呵呵,凑合着看看吧,远远没有看书那么醒目,更没有哪个质感了.     再来另外一边的          
3  模式讲解 3.1  典型疑问         首先来解决一个常见的疑问:可能有朋友会认为,上面示例中的简单工厂看起来不就是把客户端里面的“new Impl()”移动到简单工厂里面吗?不还是一样通过new一个实现类来得到接口吗?把“new Impl()”这句话放到客户端和放到简单工厂里面有什么不同吗?        理解这个问题的重点就在于理解简单工厂所处的位置。        根据前面的学习,我们知道接口是用来封装隔离具体的实现的,目标就是不要让客户端知道封装体内部的具体实现。简单工厂的位置是位于封装体内的,也就是简单工厂是跟接口和具体的实现在一起的,算是封装体内部的一个类,所以简单 ...
2  解决方案 1  简单工厂来解决         用来解决上述问题的一个合理的解决方案就是简单工厂,那么什么是简单工厂呢?1:简单工厂定义  2:应用简单工厂来解决的思路        分析上面的问题,虽然不能让模块外部知道模块内的具体实现,但是模块内部是可以知道实现类的,而且创建接口是需要具体实现类的。        那么干脆在模块内部新建一个类,在这个类里面来创建接口,然后把创建好的接口返回给客户端,这样外部应用就只需要根据这个类来获取相应的接口对象,然后就可以操作接口定义的方法了。把这样的对象称为简单工厂,就叫Factory吧。        这样一来,客户端就可以通过这个Fa ...
3 小时前 JavaEye管理员 发给 我 的消息 正文: chjavach,你好!发表到JavaEye博客频道首页的文章应该是原创性质的、言之有物的文章,并且不允许您发布广告性质、软文性质、提问性质或者具有攻击性质的文章到博客频道首页。您的博客文章'研磨设计模式之简单工厂模式-1'不符合该发布条件,从博客频道首页撤出。在15天之内,您的博客文章将无法在博客频道首页发表。   这是3小时前收到的JavaEye管理员 发给 我 的消息 3 小时前 JavaEye管理员 发给 我 的消息 “ chjavach,你好!发表到JavaEye博客频道首 ...
   继续研磨设计模式,来个简单的   简单工厂         简单工厂不是一个标准的设计模式,但是它实在是太常用了,简单而又神奇,所以还是需要好好掌握的,就当是对学习设计模式的热身运动吧。        为了保持一致性,我们尽量按照学习其它模式的步骤来进行学习。 1  场景问题         大家都知道,在Java应用开发中,要“面向接口编程”。        那么什么是接口?接口有什么作用?接口如何使用?一起来回顾一下: 1.1  接口回顾 (1)Java中接口的概念        在Java中接口是一种特殊的抽象类,跟一般的抽象类相比,接口里面的所有方法都是抽象方 ...
    今天收到编辑发过来的最终图书封面,很开心,拿出来show一下!     顺带做个广告,《研磨设计模式》 一书由 清华大学出版社  出版并发行,即将上市,敬请关注!     《研磨设计模式》一书已经上市,卓越网销售链接: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%87%A3/dp/B004G8P90S/ref=sr_1_1?ie=UTF8&qid=1295358211&sr=8-1   也可以直接在卓越网上搜索《研磨设计模式》 ...
    继续模式之旅,来个简单点的        抽象工厂模式(Abstract Factory) 1.1  场景问题 1.1.1  选择组装电脑的配件         举个生活中常见的例子——组装电脑,我们在组装电脑的时候,通常需要选择一系列的配件,比如:CPU、硬盘、内存、主板、电源、机箱等等。为了使讨论简单点,只考虑选择CPU和主板的问题。        事实上,我们在选择CPU的时候,面临一系列的问题,比如:品牌、型号、针脚数目、主频等问题,只有把这些都确定下来,才能确定具体的CPU。        同样,在选择主板的时候,也有一系列的问题,比如:品牌、芯片组、 ...
3.3  装饰模式和AOP         装饰模式和AOP在思想上有共同之处。可能有些朋友还不太了解AOP,下面先简单介绍一下AOP的基础知识。1:什么是AOP——面向方面编程        AOP是一种编程范式,提供从另一个角度来考虑程序结构以完善面向对象编程(OOP)。        在面向对象开发中,考虑系统的角度通常是纵向的,比如我们经常画出的如下的系统架构图,默认都是从上到下,上层依赖于下层,如图5所示:                                          图5  系统架构图示例图        而在每个模块内部呢?就拿大家都熟悉的三层架构来说,也是从 ...
  3  模式讲解 3.1  认识装饰模式 (1)模式功能        装饰模式能够实现动态的为对象添加功能,是从一个对象外部来给对象增加功能,相当于是改变了对象的外观。当装饰过后,从外部使用系统的角度看,就不再是使用原始的那个对象了,而是使用被一系列的装饰器装饰过后的对象。        这样就能够灵活的改变一个对象的功能,只要动态组合的装饰器发生了改变,那么最终所得到的对象的功能也就发生了改变。        变相的还得到了另外一个好处,那就是装饰器功能的复用,可以给一个对象多次增加同一个装饰器,也可以用同一个装饰器装饰不同的对象。 (2)对象组合        前面已经讲到了 ...
2  解决方案 2.1  装饰模式来解决         用来解决上述问题的一个合理的解决方案,就是使用装饰模式。那么什么是装饰模式呢?(1)装饰模式定义  (2)应用装饰模式来解决的思路        虽然经过简化,业务简单 ...
  装饰模式(Decorator) 1  场景问题 1.1  复杂的奖金计算         考虑这样一个实际应用:就是如何实现灵活的奖金计算。        奖金计算是相对复杂的功能,尤其是对于业务部门的奖金计算方式,是非常复杂的,除了业务功能复杂外,另外一个麻烦之处是计算方式还经常需要变动,因为业务部门经常通过调整奖金的计算方式来激励士气。        先从业务上看看现有的奖金计算方式的复杂性: 首先是奖金分类:对于个人,大致有个人当月业务奖金、个人累计奖金、个人业务增长奖金、及时回款奖金、限时成交加码奖金等等; 对于业务主管或者是业务经理,除了个人奖金外,还有 ...
    大讨论:学习和应用设计模式的经验、教训、疑问等         在JavaEye发设计模式方面的文章也2个月了,获得了很多朋友的关爱和支持。这也说明了很多朋友对设计模式是很感兴趣的。         当然大家 ...
3.4  广义桥接-Java中无处不桥接         使用Java编写程序,一个很重要的原则就是“面向接口编程”,说得准确点应该是“面向抽象编程”,由于在Java开发中,更多的使用接口而非抽象类,因此通常就说成“面向接口编程” ...
  3  模式讲解 3.1  认识桥接模式 (1)什么是桥接        在桥接模式里面,不太好理解的就是桥接的概念,什么是桥接?为何需要桥接?如何桥接?把这些问题搞清楚了,也就基本明白桥接的含义了。        一个一个来,先看什么是桥接?所谓桥接,通俗点说就是在不同的东西之间搭一个桥,让他们能够连接起来,可以相互通讯和使用。那么在桥接模式中到底是给什么东西来搭桥呢?就是为被分离了的抽象部分和实现部分来搭桥,比如前面示例中抽象的消息和具体消息发送之间搭个桥。        但是这里要注意一个问题:在桥接模式中的桥接是单向的,也就是只能是抽象部分的对象去使用具体实现部分的对象,而不 ...
2  解决方案 2.1  桥接模式来解决         用来解决上述问题的一个合理的解决方案,就是使用桥接模式。那么什么是桥接模式呢? (1)桥接模式定义         将抽象部分与它的实现部分分离,使它们都可以独立地变 ...
Global site tag (gtag.js) - Google Analytics