设计模式
文章平均质量分 90
iteye_10664
这个作者很懒,什么都没留下…
展开
-
Java中23种设计模式详解
通常,一个设计模式描述了一个被证实可行的方案。这些方案非常普遍,是具有完整定义的最常用的模式。一般模式有4个基本要素:模式名称(pattern name)、问题(problem)、解决方案(solution)、效果(consequences)。 常见的Java设计模式有以下23种: 1、抽象工厂模式(Abstract Factory):提供一个创建一系列相关或相互依赖对象的接口...2011-08-27 16:45:55 · 52 阅读 · 0 评论 -
java多线程设计模式详解之一
线程的创建和启动 java语言已经内置了多线程支持,所有实现Runnable接口的类都可被启动一个新线程,新线程会执行该实例的run()方法,当run()方法执行完毕后,线程就结束了。一旦一个线程执行完毕,这个实例就不能再重新启动,只能重新生成一个新实例,再启动一个新线程。 Thread类是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Th...2011-08-27 16:59:22 · 82 阅读 · 0 评论 -
java多线程设计模式详解之三
前面谈了多线程应用程序能极大地改善用户相应。例如对于一个Web应用程序,每当一个用户请求服务器连接时,服务器就可以启动一个新线程为用户服务。 然而,创建和销毁线程本身就有一定的开销,如果频繁创建和销毁线程,CPU和内存开销就不可忽略,垃圾收集器还必须负担更多的工作。因此,线程池就是为了避免频繁创建和销毁线程。 每当服务器接受了一个新的请求后,服务器就从线程池中挑选一个等待的线程并执行请...原创 2011-08-27 17:03:03 · 98 阅读 · 0 评论 -
java多线程设计模式详解之四
ReadWriteLock 多线程读写同一个对象的数据是很普遍的,通常,要避免读写冲突,必须保证任何时候仅有一个线程在写入,有线程正在读取的时候,写入操作就必须等待。简单说,就是要避免“写-写”冲突和“读-写”冲突。但是同时读是允许的,因为“读-读”不冲突,而且很安全。 要实现以上的ReadWriteLock,简单的使用synchronized就不行,我们必须自己设计一个ReadWr...原创 2011-08-27 17:04:43 · 81 阅读 · 0 评论 -
java多线程设计模式详解之五
最后是ThreadPool,负责管理所有的服务器线程,还可以动态增加和减少线程数: package com.crackj2ee.thread; import java.util.*; public class ThreadPool extends ThreadGroup { private List threads = new LinkedList(); private TaskQu...原创 2011-08-27 17:05:37 · 87 阅读 · 0 评论 -
java设计模式—工厂模式
一、工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。 工厂模式在《Java与模式》中分为三类:1)简单工厂模式(Simple Factory):不利于产生系列产品;2)工厂方法模式(Factory Method):又称为多形性工厂;3)抽象工厂模式(Abstract Factory):又称为工具箱,产生产品族,但不利于产生新的产品; ...2011-08-27 17:09:10 · 65 阅读 · 0 评论 -
Java设计模式之State(状态模式)
定义: GOF《设计模式》中给状态模式下的定义为:允许一个对象在其内部状态改变时改变它的行为。 先看一个例子: view plain package com.state; public class KissingPrincess { // 标志位,标志是青蛙还是王子。 private boolean isFrog = true;...原创 2011-08-27 17:11:13 · 148 阅读 · 0 评论 -
java设计模式之strategy(策略模式)和policy模式(泛化的strategy模式)
strategy模式 定义: 运行时刻选择算法 表面上看起来,state模式和strategy模式是非常相似的,但既然他们分成两种不同的模式,就有一定的区别,用一句话来概括就是: 策略用来处理算法方式变化,而状态则是处理状态变化。 具体可以参考:http://blog.csdn.net/lwzcjd/archive/2009/05/19/4201828.aspx 下...2011-08-27 17:12:43 · 695 阅读 · 0 评论