
设计模式
文章平均质量分 78
hjxhjh
这个作者很懒,什么都没留下…
展开
-
我认识的Observer 模式
GoF说道:Observer模式的意图是“定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新”。从这段话里我们可以得到两个信息,如下: 1, 观察者(具体执行操作的对象,有多个) 2, 被观察者(被观察的对象,如果该对象发生某些变化则通知观察者执行对应的操作)在java的util包中实现了该设计模式的框架,大部分应用都可以直接用它,当然了你也原创 2010-05-16 21:33:00 · 667 阅读 · 0 评论 -
单例模式完全剖析
概要 单例模式是最简单的设计模式之一,但是对于Java的开发者来说,它却有很多缺陷。在本月的专栏中,David Geary探讨了单例模式以及在面对多线程(multithreading)、类装载器(classloaders)和序列化(serialization)时如何处理这些缺陷。 单例模式适合于一个类只有一个实例的情况,比如窗口管理器,打印缓冲池和文件系统,它们都是原型的例子。典型的情况是,那些对转载 2010-05-15 11:36:00 · 531 阅读 · 0 评论 -
设计模式--Mediator(中介) 模式
中介者模式是由GoF提出的23种软件设计模式的一种。Mediator模式是行为模式之一,Mediator模式定义:用一个中介者对象来封装一系列的对象交互。中介者使各对象不需要显式的相互引用,从而使其耦合松散,而且可以独立的改变他们之间的交互。适用性: 1)一组对象以定义良好但是复杂的方式进行通信。产生的相互依赖关系结构混乱且难以理解。 2)一个对象引用其他很多对象并且直接与这些对象通原创 2010-05-18 18:27:00 · 699 阅读 · 0 评论 -
Template Method 模式小结
<br />在编写一个方法的时候,考虑到算法的某些步骤可能会有不同的实现方法,我们可能会首先定义算法的框架。这样,在定义方法的时候,可以将默写具体的步骤定义为抽象方法,或者是将它们定义为存根方法,也可以定义为某个单独的接口中的方法。这就产生了一个严格的模板。<br />Template Method 模式的目的就是在一个方法中实现一个算法,并将算法的某些步骤的定义推迟,从而使得其他类可以重新定义这些步骤。<br />对于这一模板的最经典的范例感觉STL中sort()方法的实现了。当然Java中Arrays和原创 2010-06-07 20:18:00 · 605 阅读 · 0 评论 -
中介模式的优点
中介模式包括四种角色:1.中介者:一个接口,其中定义了中介中注册者之间进行通信的方法;2.具体中介者:即是实现中介者接口的类,存放所有注册者的引用,并通过实现中介者接口来实现 具体注册者间的通信;3.注册者:一个接口制订了具体注册者需要实现的方法;4.具体注册者:实现注册者接口的类,具体注册者需要包含中介者的引用。具体注册者需要和其他的注册者进行通信时, 只需要将自己的请求信息通知给他包含的中介者实例即可。通过上述表达我们可以看原创 2011-04-04 16:42:00 · 1796 阅读 · 0 评论 -
Reactor与Proactor的简单对比
1、标准定义两种I/O多路复用模式:Reactor和Proactor一般地,I/O多路复用机制都依赖于一个事件多路分离器(Event Demultiplexer)。分离器对象可将来自事件源的I/O事件分离出来,并分发到对应的read/write事件处理器(Event Handler)。开发人员预先注册需要处理的事件及其事件处理器(或回调函数);事件分离器负责将请求事件传递给事件处理器。两个转载 2013-04-01 11:49:15 · 605 阅读 · 0 评论 -
高性能网络编程五--IO复用与并发编程
对于服务器的并发处理能力,我们需要的是:每一毫秒服务器都能及时处理这一毫秒内收到的数百个不同TCP连接上的报文,与此同时,可能服务器上还有数以十万计的最近几秒没有收发任何报文的相对不活跃连接。同时处理多个并行发生事件的连接,简称为并发;同时处理万计、十万计的连接,则是高并发。服务器的并发编程所追求的就是处理的并发连接数目无限大,同时维持着高效率使用CPU等资源,直至物理资源首先耗尽。并转载 2013-12-12 09:00:50 · 985 阅读 · 0 评论