Java 设计模式深入讲解
本专栏主要根据网络资料整理而成。目的是总结自己所学。
挖坑埋你
这个作者很懒,什么都没留下…
展开
-
设计模式讲解 — 装饰模式(3)
模式讲解认识装饰模式(1)模式功能装饰模式能够实现动态的为对象添加功能,是从一个对象外部来给对象增加功能,相当于是改变了对象的外观。当装饰过后,从外部使用系统的角度看,就不再是使用原始的那个对象了,而是使用被一系列的装饰器装饰过后的对象。这样就能够灵活的改变一个对象的功能,只要动态组合的装饰器发生了改变,那么最终所得到的对象的功能也就发生了改变。变相的还得到了另外一个好处,...转载 2018-03-26 16:37:22 · 252 阅读 · 0 评论 -
设计模式讲解 — 装饰模式(2)
解决方案装饰模式来解决用来解决上述问题的一个合理的解决方案,就是使用装饰模式。那么什么是装饰模式呢?(1)装饰模式定义动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式比生成子类更为灵活。(2)应用装饰模式来解决的思路虽然经过简化,业务简单了很多,但是需要解决的问题不会少,还是要解决:要透明的给一个对象增加功能,并实现功能的动态组合。所谓透明的给一个对象增...转载 2018-03-26 16:08:27 · 423 阅读 · 0 评论 -
设计模式讲解 — 装饰模式(1)
场景问题复杂的奖金计算考虑这样一个实际应用:就是如何实现灵活的奖金计算。奖金计算是相对复杂的功能,尤其是对于业务部门的奖金计算方式,是非常复杂的,除了业务功能复杂外,另外一个麻烦之处是计算方式还经常需要变动,因为业务部门经常通过调整奖金的计算方式来激励士气。先从业务上看看现有的奖金计算方式的复杂性:首先是奖金分类:对于个人,大致有个人当月业务奖金、个人累计奖金、个人业务增...转载 2018-03-26 15:24:32 · 568 阅读 · 0 评论 -
设计模式讲解 — 桥接模式(3)
模式讲解认识桥接模式(1)什么是桥接在桥接模式里面,不太好理解的就是桥接的概念,什么是桥接?为何需要桥接?如何桥接?把这些问题搞清楚了,也就基本明白桥接的含义了。所谓桥接,通俗点说就是在不同的东西之间搭一个桥,让他们能够连接起来,可以相互通讯和使用。那么在桥接模式中到底是给什么东西来搭桥呢?就是为被分离了的抽象部分和实现部分来搭桥,比如前面示例中抽象的消息和具体消息发送之间搭个...转载 2018-03-21 13:12:07 · 416 阅读 · 0 评论 -
设计模式讲解 — 桥接模式(2)
解决方案桥接模式来解决用来解决上述问题的一个合理的解决方案,就是使用桥接模式。那么什么是桥接模式呢?(1)桥接模式定义将抽象部分与它的实现部分分离,使它们都可以独立地变化。(2)应用桥接模式来解决的思路仔细分析上面的示例,根据示例的功能要求,示例的变化具有两个纬度,一个纬度是抽象的消息这边,包括普通消息、加急消息和特急消息,这几个抽象的消息本身就具有一定的关系,加急消息...转载 2018-03-21 12:54:41 · 252 阅读 · 0 评论 -
设计模式讲解 — 桥接模式(1)
场景问题发送提示消息考虑这样一个实际的业务功能:发送提示消息。基本上所有带业务流程处理的系统都会有这样的功能,比如某人有新的工作了,需要发送一条消息提示他。从业务上看,消息又分成普通消息、加急消息和特急消息多种,不同的消息类型,业务功能处理是不一样的,比如加急消息是在消息上添加加急,而特急消息除了添加特急外,还会做一条催促的记录,多久不完成会继续催促。从发送消息的手段上看,又有系统...转载 2018-03-21 10:40:44 · 285 阅读 · 0 评论 -
设计模式讲解 — 生成器模式(3)
模式讲解认识生成器模式(1)生成器模式的功能生成器模式的主要功能是构建复杂的产品,而且是细化的,分步骤的构建产品,也就是生成器模式重在解决一步一步构造复杂对象的问题。如果光是这么认识生成器模式的功能是不够的。 更为重要的是,这个构建的过程是统一的,固定不变的,变化的部分放到生成器部分了,只要配置不同的生成器,那么同样的构建过程,就能构建出不同的产品表示来。再直白点说,...转载 2018-03-19 16:20:22 · 730 阅读 · 0 评论 -
设计模式讲解 — 生成器模式(2)
解决方案生成器模式来解决用来解决上述问题的一个合理的解决方案就是生成器模式。那么什么是生成器模式呢?(1)生成器模式定义将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。(2)应用生成器模式来解决的思路仔细分析上面的实现,构建每种格式的数据文件的处理过程,这不就是构建过程吗?而每种格式具体的步骤实现,不就相当于是不同的表示吗?因为不同的步骤实现,决...转载 2018-03-19 15:27:42 · 352 阅读 · 0 评论 -
设计模式讲解 — 生成器模式(1)
场景问题导出数据的应用框架对于导出数据的应用框架,通常在导出数据上,会有一些约定的方式,比如导出成:文本格式、数据库备份形式、Excel格式、Xml格式等等。对于每种方式具体如何实现,通常对于具体的导出内容和格式是有要求的,假如现在有如下的要求,简单描述一下:导出的文件,不管什么格式,都分成三个部分,分别是文件头、文件体和文件尾在文件头部分,需要描述如下信息:分公司或门市点...转载 2018-03-19 14:56:02 · 402 阅读 · 0 评论 -
设计模式讲解 — 外观模式(3)
模式讲解认识外观模式(1)外观模式的目的外观模式的目的不是给子系统添加新的功能接口,而是为了让外部减少与子系统内多个模块的交互,松散耦合,从而让外部能够更简单的使用子系统。这点要特别注意,因为外观是当作子系统对外的接口出现的,虽然也可以在这里定义一些子系统没有的功能,但不建议这么做。外观应该是包装已有的功能,它主要负责组合已有功能来实现客户需要,而不是添加新的实现。(2)使...转载 2018-03-18 15:27:59 · 380 阅读 · 0 评论 -
设计模式讲解 — 外观模式(2)
解决方案外观模式来解决用来解决上述问题的一个合理的解决方案就是外观模式。那么什么是外观模式呢?(1)外观模式定义为子系统中的一组接口提供一个一致的界面,Facad模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 界面:在这里提到的界面,主要指的是从一个组件外部来看这个组件,能够看到什么,这就是这个组件的界面,也就是所说的外观。比如:你从一个类外部来看这个类,...原创 2018-03-17 15:09:23 · 286 阅读 · 0 评论 -
设计模式讲解 — 外观模式(1)
场景问题生活中的示例外观模式在现实生活中的示例很多,比如:组装电脑,通常会有两种方案:一个方案是去电子市场把自己需要的配件都买回来,然后自己组装,绝对DIY(Do It Yourself)。这个方案好是好,但是需要对各种配件都要比较熟悉,这样才能选择最合适的配件,而且还要考虑配件之间的兼容性。如图所示: 另外一个方案,就是到电子市场,找一家专业装机的公司,把具体的要求一讲,然...转载 2018-03-17 14:43:04 · 313 阅读 · 0 评论 -
设计模式讲解 — 设计模式和设计原则(面向对象设计(OOD)原则)
面向对象的分析设计有很多原则,这些原则大多从思想层面给我们指出了面向对象分析设计的正确方向,是我们进行面向对象分析设计时应该尽力遵守的准则。而设计模式已经是针对某个场景下某些问题的某个解决方案。也就是说这些设计原则是思想上的指导,而设计模式是实现上的手段,因此设计模式也应该遵守这些原则,换句话说,设计模式就是这些设计原则的一些具体体现。最近在项目开发过程中碰到了一些问题,发现在每波迭代...转载 2018-03-18 17:56:58 · 963 阅读 · 0 评论