2010年9月1日
摘要: 来写一个大家既陌生又熟悉的设计模式,也是非常实用的一个设计模式,那就是桥接模式。 说陌生是很多朋友并不熟悉这个设计模式,说熟悉是很多人经常见到或者是下意识的用到这个设计模式,只是不知道罢了。桥接模式是非常实用的一个模式,下面就来写写它。 桥接模式(Bridge)1 场景问题1.1 发送提示消息 考虑这样一个实际的业务功能:发送提示消息。基本上所有带业务流程处理的系统都会有这样的功能,比如某人有新的... 阅读全文
posted @ 2010-09-01 11:50 云飞龙行 阅读(2965) 评论(8) 推荐(20) 编辑
  2010年8月31日
摘要: 3.8 在Java中一种更好的单例实现方式 根据上面的分析,常见的两种单例实现方式都存在小小的缺陷,那么有没有一种方案,既能够实现延迟加载,又能够实现线程安全呢? 还真有高人想到这样的解决方案了,这个解决方案被称为Lazy initialization holder class模式,这个模式综合使用了Java的类级内部类和多线程缺省同步锁的知识,很巧妙的同时实现了延迟加载和线程安全。1:先来看点相... 阅读全文
posted @ 2010-08-31 08:34 云飞龙行 阅读(2849) 评论(5) 推荐(17) 编辑
  2010年8月30日
摘要: 3.3 延迟加载的思想 单例模式的懒汉式实现方式体现了延迟加载的思想,什么是延迟加载呢? 通俗点说,就是一开始不要加载资源或者数据,一直等,等到马上就要使用这个资源或者数据了,躲不过去了才加载,所以也称Lazy Load,不是懒惰啊,是“延迟加载”,这在实际开发中是一种很常见的思想,尽可能的节约资源。 体现在什么地方呢?看如下代码:3.4 缓存的思想 单例模式的懒汉式实现还体现了缓存的思想,缓存也... 阅读全文
posted @ 2010-08-30 09:04 云飞龙行 阅读(3059) 评论(4) 推荐(15) 编辑
  2010年8月28日
摘要: 3 模式讲解3.1 认识单例模式(1)单例模式的功能 单例模式的功能是用来保证这个类在运行期间只会被创建一个类实例,另外单例模式还提供了一个全局唯一访问这个类实例的访问点,就是那个getInstance的方法。不管采用懒汉式还是饿汉式的实现方式,这个全局访问点是一样的。 对于单例模式而言,不管采用何种实现方式,它都是只关心类实例的创建问题,并不关心具体的业务功能。(2)单例模式的范围 也就是在多大... 阅读全文
posted @ 2010-08-28 08:27 云飞龙行 阅读(2630) 评论(3) 推荐(17) 编辑
  2010年8月27日
摘要: 声明:都是原创的文章看到很多朋友在写单例,也来凑个热闹,虽然很简单,但是也有很多知识点在单例里面,看看是否能写出点不一样来。单例模式(Singleton)1 场景问题1.1 读取配置文件的内容 考虑这样一个应用,读取配置文件的内容。 很多应用项目,都有与应用相关的配置文件,这些配置文件多是由项目开发人员自定义的,在里面定义一些应用需要的参数数据。当然在实际的项目中,这种配置文件多采用xml格式的。... 阅读全文
posted @ 2010-08-27 08:38 云飞龙行 阅读(3533) 评论(7) 推荐(16) 编辑
  2010年8月25日
摘要: 3.3 可撤销的操作 可撤销操作的意思就是:放弃该操作,回到未执行该操作前的状态。这个功能是一个非常重要的功能,几乎所有GUI应用里面都有撤消操作的功能。GUI的菜单是命令模式最典型的应用之一,所以你总是能在菜单上找到撤销这样的菜单项。 既然这么常用,那该如何实现呢? 有两种基本的思路来实现可撤销的操作,一种是补偿式,又称反操作式:比如被撤销的操作是加的功能,那撤消的实现就变成减的功能;同理被撤销... 阅读全文
posted @ 2010-08-25 08:24 云飞龙行 阅读(3461) 评论(4) 推荐(17) 编辑
  2010年7月16日
摘要: 3 模式讲解3.1 认识命令模式(1)命令模式的关键 命令模式的关键之处就是把请求封装成为对象,也就是命令对象,并定义了统一的执行操作的接口,这个命令对象可以被存储、转发、记录、处理、撤销等,整个命令模式都是围绕这个对象在进行。(2)命令模式的组装和调用 在命令模式中经常会有一个命令的组装者,用它来维护命令的“虚”实现和真实实现之间的关系。如果是超级智能的命令,也就是说命令对象自己完全实现好了,不... 阅读全文
posted @ 2010-07-16 07:17 云飞龙行 阅读(4882) 评论(0) 推荐(17) 编辑
  2010年7月9日
摘要: 命令模式也是开发中常见的一个模式,也不是太难,比较简单,下面来详细的写一下命令模式。命令模式(Command)1 场景问题1.1 如何开机 估计有些朋友看到这个标题会非常奇怪,电脑装配好了,如何开机?不就是按下启动按钮就可以了吗?难道还有什么玄机不成。 对于使用电脑的客户——就是我们来说,开机确实很简单,按下启动按钮,然后耐心等待就可以了。但是当我们按下启动按钮过后呢?谁来处理?如何处理?都经历了... 阅读全文
posted @ 2010-07-09 07:29 云飞龙行 阅读(26498) 评论(19) 推荐(24) 编辑
  2010年7月7日
摘要: 3.4 策略模式结合模板方法模式 在实际应用策略模式的过程中,经常会出现这样一种情况,就是发现这一系列算法的实现上存在公共功能,甚至这一系列算法的实现步骤都是一样的,只是在某些局部步骤上有所不同,这个时候,就需要对策略模式进行些许的变化使用了。 对于一系列算法的实现上存在公共功能的情况,策略模式可以有如下三种实现方式:一个是在上下文当中实现公共功能,让所有具体的策略算法回调这些方法。另外一种情况就... 阅读全文
posted @ 2010-07-07 06:51 云飞龙行 阅读(2867) 评论(6) 推荐(18) 编辑
  2010年7月1日
摘要: 3.3 Context和Strategy的关系 在策略模式中,通常是上下文使用具体的策略实现对象,反过来,策略实现对象也可以从上下文获取所需要的数据,因此可以将上下文当参数传递给策略实现对象,这种情况下上下文和策略实现对象是紧密耦合的。 在这种情况下,上下文封装着具体策略对象进行算法运算所需要的数据,具体策略对象通过回调上下文的方法来获取这些数据。 甚至在某些情况下,策略实现对象还可以回调上下文的... 阅读全文
posted @ 2010-07-01 08:32 云飞龙行 阅读(3375) 评论(5) 推荐(16) 编辑