设计模式
文章平均质量分 80
zha_zi
熟知并非真知。熟知是过去成功的东西,可能会束缚你,真知是真理,需要你去探索
展开
-
门面模式(Facade)
一、 门面(Facade)模式 外部与一个子系统的通信必须通过一个统一的门面(Facade)对象进行,这就是门面模式。医院的例子 用一个例子进行说明,如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门诊、划价、化验、收费、取药等。看病的病人要与这些部门打交道,就如同一个子系统的客户端与一个子系统的各个类打交道一样,不是一件容易的事情。 首...原创 2011-09-02 10:32:05 · 128 阅读 · 0 评论 -
Future 模式详解(并发使用)
原创 2012-02-16 16:22:35 · 68 阅读 · 0 评论 -
produce_cuctomer (生产者-消费者)模式
原创 2011-10-26 15:08:58 · 93 阅读 · 0 评论 -
门面模式(Facade)
原创 2011-09-02 10:32:05 · 73 阅读 · 0 评论 -
单例模式再讨论(有关序列化的单例问题)
le的对象进行序列化后,再反序列化,内中会不只一个实例了,因为反序列化时会重新 生成一个对象。 既然INSTANCE为静态域,那序列化时返回的对象如果也是INSTANCE就可以解决问题了,而打开API我们发现 Serializable接口确实有这样两个特殊的方法描述: ? 将对象写入流时需要指定要使用的替代对象的可序列化类,应使用准确的签名来实现此特殊方法: ANY-ACCESS-MODIFIER Object writeReplace() throws ObjectStrea2011-02-11 09:43:34 · 50 阅读 · 0 评论 -
Flyweight Pattern(享元模式)
享元模式的特点是,复用我们内存中已存在的对象,降低系统创建对象实例的性能消耗 我们来给出个简单的享元模式的应用前后的对比图,大概我们就知道享元模式的重要作用了。 我们这里以绘制一个有样式的字体来说明吧,有的时候我们想绘制一个纯色的文字,比如红色,那么我们可能需要创建很多的实例,通常来说,这些实例的差别不大,这个时候,我们可以考虑复用其中创建的某个实例,而不用去...原创 2012-03-29 11:43:27 · 87 阅读 · 0 评论 -
Future 模式详解(并发使用)
我觉得很多讲Future模式的文章并没有深刻理解Future模式,其实Future模式只是生产者-消费者模型的扩展。经典“生产者-消费者”模型中消息的生产者不关心消费者何时处理完该条消息,也不关心处理结果。Future模式则可以让消息的生产者等待直到消息处理结束,如果需要的话还可以取得处理结果 用过Java并发包的朋友或许对Future (interface) 已经比较熟悉了,其...原创 2012-02-16 16:22:35 · 583 阅读 · 0 评论 -
produce_cuctomer (生产者-消费者)模式
一个老问题,一只水杯完成倒水,喝水的动作,保证每次都是先倒水在喝水,这是一个典型的 生产者-消费者模型,如何解决这样的类型的问题,这就是线程同步下的调度问题 这个模式的难点在于线程间的调度,线程建调度的本质也就是线程状态的转换配合synchronized 同步关键字的使用不同的代码上的使用同一个同步锁达到不同模块之间的协调 生产线程 执行搜先拿到锁,判断水杯是否...原创 2011-10-26 15:08:58 · 168 阅读 · 0 评论 -
单例模式再讨论(有关序列化的单例问题)
class Dog implements Serializable{ public static final Dog INSTANCE = new Dog(); private Dog(){} } 上面能控制只生成一个单实例吗? 如果对实现了Serializable的对象进行序列化后,再反序列化,内中会不只一个实例了,因为反序列化时会重新 生...2011-02-11 09:43:34 · 178 阅读 · 0 评论 -
Flyweight Pattern(享元模式)
大概我们就知道享元模式的重要作用了。 我们这里以绘制一个有样式的字体来说明吧,有的时候我们想绘制一个纯色的文字,比如红色,那么我们可能需要创建很多的实例,通常来说,这些实例的差别不大,这个时候,我们可以考虑复用其中创建的某个实例,而不用去new这么多相同的对象,来完成这样的工作。我们下面以这个例子来说明,使用享元模式的前后对比的情况。 使用享元模式前: 使用享元模式后: 四、享元模式的特点及使用场景原创 2012-03-29 11:43:27 · 90 阅读 · 0 评论