- 博客(10)
- 资源 (5)
- 收藏
- 关注
原创 Flyweight模式
模式定义 Flyweight模式尤其适用于需要创建大量的颗粒对象,而这些对象在某些属性上又极为相似或着能够抽取出相同的属性的情况下,能大幅提高性能减少内存使用。 使用范围 需要创建大量的颗粒对象(细微的,但是纹理清晰的) 一个对象的外在属性能够抽取出来可供共享的 举例说明 假设需要在一个面板上绘出大量随机的圆圈图像,这些圆圈颜色是随机
2009-12-10 17:03:00 519
原创 Strategy 策略模式
模式定义 Strategy模式定义了一系列不同的算法封装成不同的类,使客户端通过环境类来调用这些不同的算法类,实现统一对象的不同行为。 使用范围 同一个对象在不同的情形下具有不同的行为 举例说明 假设现有两个数字,他们在不同的情况下需要做不同的数学运算,加减乘除,具体由客户端来决定何时实现这些不同行为。我们首先定义一个Strategy
2009-12-10 17:01:00 445
原创 State 模式
模式定义 State模式允许一个对象在内部状态改变时它的行为也随着改变,实现其类在运行时的动态修改。 使用范围 行为取决于对象的状态 太多的分支语句来区别处理不同状态下的行为 使用方法 举例说明 Socket网络编程中假设我们定义它有三个状态,Open, Listen和Close。从不同的状态中抽象出一个接口 Tcp
2009-12-10 16:59:00 456
原创 Visitor 观察者模式
模式定义 观察者模式将类的结构与操作于该类上的算法分离开,使得模式的使用者能在不改变类结构的前提下自由地对类中的元素进行不同的操作。 使用方法 Visitor将自己注册到类对象中,由类对象通过回调的方式来启动观察者访问操作类内部的数据元素或结构。 使用范围 类结构内部包含很多具有不同接口的类对象,需要定义针对于具体类的操作 需要对于类
2009-12-10 16:50:00 471
原创 Observer 观察者模式
模式定义 某个对象改变时,需要动态地通知其他对象。使用观察者模式,很好地将被观察者和观察者隔离开来。观察者无需知道对方何时会发生数据或状态的改变;被观察者也不用知道它所通知的观察者究竟是谁。 使用方法 将观察者注册到被观察对象中,当被观察的对象发生改变时,及时地通知已注册的观察者对象。 使用范围 一个对象的改变需要依赖以其他对象的改变。
2009-12-07 14:28:00 413
原创 Memento 备忘模式
模式定义 备忘模式很简单。在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 使用方法 必须保存一个对象在某一个时刻的(部分)状态, 这样以后需要时它才能恢复到先前的状态。 使用范围 程序有时需要保持某个对象在某个时刻的状态。 JSP表单提交后的错误提示等案例中用的较
2009-12-07 14:26:00 409
原创 Mediator 中介模式
模式定义 使用一个中介对象来封装一系列对象之间的交互。中介者可以独立开这些对象之间的相互引用,使其耦合松散,并可以改变他们之间的交互。 使用方法 一系列的对象向中介注册,将他们之间的相互耦合关系交由中介统一管理。 使用范围 对象之间相互引用且逻辑过于复杂的时候。 当引入一个新的对象后导致其他已存在的对象需要重新改变相互之间的逻辑的时候
2009-12-07 14:20:00 439
原创 Iterator 迭代模式
模式定义 迭代模式提供了一种方法顺序用来访问一个聚合对象中的各个元素, 而又不需暴露该对象的内部表示。如今该模式已被java集成到了util类库中,我们常常可以同过Collection接口以及其下的Iterator来进行集合遍历的操作。 使用方法 迭代模式使用next或者previous等的方法提供给外部一种可遍历的功能。 使用范围 访问一个聚合
2009-12-06 15:10:00 800
原创 Command 命令模式
模式定义 命令模式是对命令的封装。命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象。因此命令模式把一个请求或者操作封装到一个对象中,允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。 使用方法 命令模式允许请求的一方和接收的一方独立开来,使得请求的一方不必知道接收请求的一方的接口,更不必知道请求是怎么被接
2009-12-06 15:03:00 434
原创 Chain of Responsibility 责任链模式
模式定义责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织链和分配责任。责任链模式要求某个处理对象要么直接处理,要么转到下一个链处理,不允许处理一半再移交一半。 Windows操
2009-12-02 08:58:00 402
Woodpecker for Oracle
2011-09-04
ZigzagClock 世界时钟软件
2008-12-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人