1. 责任链
避免将请求的发送者附加到其接收者,从而使其它对象也可以处理请求;将请求以对象的方式发送到链上直到请求被处理完毕。
java.util.logging.Logger#log() javax.servlet.Filter#doFilter()
2. 命令模式
将命令封装进对象中;允许使用命令对象对客户对象进行参数化;允许将命令对象存放到队列中。
java.lang.Runnable javax.swing.Action
3. 解释器模式
为语言创建解释器,通常由语言的语法和语法分析来定义。
java.util.Pattern java.text.Normalizer java.text.Format
4. 迭代器
提供一种一致的访问聚合对象元素的方法,并且不暴露聚合对象的内部表示。
java.util.Iterator java.util.Enumeration
5. 中间人模式
使用中间人对象来封装对象之间的交互。中间人模式可以让降低交互对象之间的耦合程度。
java.util.Timer java.util.concurrent.Executor#execute() java.util.concurrent.ExecutorService#submit() java.lang.reflect.Method#invoke()
6. 备忘录模式
在不违反封装的情况下获得对象的内部状态,从而在需要时可以将对象恢复到最初状态。
java.util.Date java.io.Serializable
7. 观察者模式
定义对象之间的一对多依赖,当一个对象状态改变时,它的所有依赖都会收到通知并且自动更新状态。
java.util.EventListener javax.servlet.http.HttpSessionBindingListener javax.servlet.http.HttpSessionAttributeListener javax.faces.event.PhaseListener
8. 策略模式
定义一系列算法,封装每个算法,并使它们可以互换。策略可以让算法独立于使用它的客户端。
java.util.Comparator#compare() javax.servlet.http.HttpServlet javax.servlet.Filter#doFilter()
9. 模板方法
定义算法框架,并将一些步骤的实现延迟到子类。通过模板方法,子类可以重新定义算法的某些步骤,而不用改变算法的结构。
java.util.Collections#sort() java.io.InputStream#skip() java.io.InputStream#read() java.util.AbstractList#indexOf()
10. 访问者模式
提供便捷的维护方式来操作一组对象。它使你在不改变操作对象的前提下,可以修改或扩展对象的行为。
例如集合,它可以包含不同类型的元素,访问者模式允许在不知道具体元素类型的前提下对集合元素进行一些操作。
javax.lang.model.element.Element and javax.lang.model.element.ElementVisitor javax.lang.model.type.TypeMirror and javax.lang.model.type.TypeVisitor
11. 空对象模式
使用什么都不做的空对象来替代 NULL。
常见问题FAQ
- 如果资源链接失效了怎么办?
- 本站用户分享的所有资源都有自动备份机制,如果资源链接失效,请联系本站客服QQ:2580505920更新资源地址。
- 如果用户分享的资源与描述不符怎么办?
- 如何分享个人资源获取赞助积分或其他奖励?
- 如果您发现了本资源有侵权行为怎么办?