设计模式
qauzy
这个作者很懒,什么都没留下…
展开
-
研磨设计模式之简单工厂模式(场景问题)
简单工厂不是一个标准的设计模式,但是它实在是太常用了,简单而又神奇,所以还是需要好好掌握的,就当是对学习设计模式的热身运动吧。 为了保持一致性,我们尽量按照学习其它模式的步骤来进行学习。1 场景问题 大家都知道,在Java应用开发中,要“面向接口编程”。 那么什么是接口?接口有什么作用?接口如何使用?一起来回顾一下:转载 2014-09-29 10:30:36 · 510 阅读 · 0 评论 -
研磨设计模式之适配器模式(Adapter)-场景问题
4.1 场景问题4.1.1 装配电脑的例子1:旧的硬盘和电源小李有一台老的台式电脑,硬盘实在是太小了,仅仅40GB,但是除了这个问题外,整机性能还不错,废弃不用太可惜了,于是决定去加装一块新的硬盘。在装机公司为小李的电脑加装新硬盘的时候,小李也在边上观看,顺便了解点硬件知识。很快的,装机人员把两块硬盘都安装好了,细心的小李发现,这两块硬盘的连接方式是不一样的。转载 2014-09-29 15:53:09 · 626 阅读 · 0 评论 -
研磨设计模式之外观模式(Facade)(模式讲解)
3.3 模式讲解3.3.1 认识外观模式(1)外观模式的目的 外观模式的目的不是给子系统添加新的功能接口,而是为了让外部减少与子系统内多个模块的交互,松散耦合,从而让外部能够更简单的使用子系统。 这点要特别注意,因为外观是当作子系统对外的接口出现的,虽然也可以在这里定义一些子系统没有的功能,但不建议这么做。外观应该是包装已有的功能,它主要转载 2014-09-29 15:51:54 · 556 阅读 · 0 评论 -
研磨设计模式之外观模式(Facade)(场景问题)
3.1 场景问题3.1.1 生活中的示例 外观模式在现实生活中的示例很多,比如:组装电脑,通常会有两种方案。 一个方案是去电子市场把自己需要的配件都买回来,然后自己组装,绝对DIY(Do It Yourself)。这个方案好是好,但是需要对各种配件都要比较熟悉,这样才能选择最合适的配件,而且还要考虑配件之间的兼容性。如图3.1所示:图3.1 客转载 2014-09-29 15:49:13 · 522 阅读 · 0 评论 -
研磨设计模式之工厂方法模式-3——跟着cc学设计系列
3 模式讲解3.1 认识工厂方法模式(1)模式的功能 工厂方法的主要功能是让父类在不知道具体实现的情况下,完成自身的功能调用,而具体的实现延迟到子类来实现。 这样在设计的时候,不用去考虑具体的实现,需要某个对象,把它通过工厂方法返回就好了,在使用这些对象实现功能的时候还是通过接口来操作,这非常类似于IoC/DI的思想,这个在后面给大家稍详细点介绍一下转载 2014-10-08 08:39:25 · 430 阅读 · 0 评论 -
研磨设计模式之工厂方法模式-2——跟着cc学设计系列
2 解决方案2.1 工厂方法模式来解决 用来解决上述问题的一个合理的解决方案就是工厂方法模式。那么什么是工厂方法模式呢?(1)工厂方法模式定义 定义一个用于创建对象的接口,让子类决定实例化哪一个类,Factory Method使一个类的实例化延迟到其子类。 (2)应用工厂方法模式来解决的思路 仔细分析上面的问题,事实上在实现转载 2014-10-08 08:36:15 · 391 阅读 · 0 评论 -
研磨设计模式之工厂方法模式-1——跟着cc学设计系列
1 场景问题1.1 导出数据的应用框架 考虑这样一个实际应用:实现一个导出数据的应用框架,来让客户选择数据的导出方式,并真正执行数据导出。 在一些实际的企业应用中,一个公司的系统往往分散在很多个不同的地方运行,比如各个分公司或者是门市点,公司没有建立全公司专网的实力,但是又不愿意让业务数据实时的在广域网上传递,一个是考虑数据安全的问题,一个是运行速度的问转载 2014-10-08 08:34:51 · 716 阅读 · 0 评论 -
研磨设计模式之工厂方法模式-5——跟着cc学设计系列
3.3 平行的类层次结构(1)什么是平行的类层次结构呢? 简单点说,假如有两个类层次结构,其中一个类层次中的每个类在另一个类层次中都有一个对应的类的结构,就被称为平行的类层次结构。 举个例子来说,硬盘对象有很多种,如分成台式机硬盘和笔记本硬盘,在台式机硬盘的具体实现上面,又有希捷、西数等不同品牌的实现,同样在笔记本硬盘上,也有希捷、日立、IBM等不同品牌的转载 2014-10-08 08:42:05 · 454 阅读 · 0 评论 -
研磨设计模式之外观模式(Facade)(解决方案)
3.2 解决方案3.2.1 外观模式来解决 用来解决上述问题的一个合理的解决方案就是外观模式。那么什么是外观模式呢?(1)外观模式定义 这里先对两个词进行一下说明,一个是界面,一个是接口。界面 一提到界面,估计很多朋友的第一反应就是图形界面(GUI)。其实在这里提到的界面,主要指转载 2014-09-29 15:50:37 · 548 阅读 · 0 评论 -
研磨设计模式之简单工厂模式(解决方案)
1 简单工厂来解决问题 用来解决上述问题的一个合理的解决方案就是简单工厂,那么什么是简单工厂呢?1:简单工厂定义2:应用简单工厂来解决的思路 分析上面的问题,虽然不能让模块外部知道模块内的具体实现,但是模块内部是可以知道实现类的,而且创建接口是需要具体实现类的。 那么干脆在模块内部新建一个类,在这个类里面来创建接口,然后转载 2014-09-29 11:50:57 · 461 阅读 · 0 评论 -
研磨设计模式之工厂方法模式-4 ——跟着cc学设计系列
3.2 工厂方法模式与IoC/DIIoC——Inversion of Control 控制反转DI——Dependency Injection 依赖注入1:如何理解IoC/DI 要想理解上面两个概念,就必须搞清楚如下的问题:参与者都有谁? 依赖:谁依赖于谁?为什么需要依赖? 注入:谁注入于谁?到底注入什么? 控制反转:谁控制谁?控制什么?为何叫反转(有转载 2014-10-08 08:40:01 · 570 阅读 · 0 评论 -
研磨设计模式之简单工厂模式(模式讲解)
3.1 典型疑问 首先来解决一个常见的疑问:可能有朋友会认为,上面示例中的简单工厂看起来不就是把客户端里面的“new Impl()”移动到简单工厂里面吗?不还是一样通过new一个实现类来得到接口吗?把“new Impl()”这句话放到客户端和放到简单工厂里面有什么不同吗? 理解这个问题的重点就在于理解简单工厂所处的位置。 根据前面的学习,我转载 2014-09-29 11:51:46 · 697 阅读 · 0 评论