最新公告
  • 新注册用户请前往个人中心绑定邮箱以便接收相关凭证邮件!!!点击前往个人中心
  • JDK中的设计模式(二)行为型

    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。

    本站所有文章均由网友分享,仅用于参考学习用,请勿直接转载,如有侵权,请联系网站客服删除相关文章。若由于商用引起版权纠纷,一切责任均由使用者承担
    极客文库 » JDK中的设计模式(二)行为型

    常见问题FAQ

    如果资源链接失效了怎么办?
    本站用户分享的所有资源都有自动备份机制,如果资源链接失效,请联系本站客服QQ:2580505920更新资源地址。
    如果用户分享的资源与描述不符怎么办?
    可以联系客服QQ:2580505920,如果要求合理可以安排退款或者退赞助积分。
    如何分享个人资源获取赞助积分或其他奖励?
    本站用户可以分享自己的资源,但是必须保证资源没有侵权行为。点击个人中心,根据操作填写并上传即可。资源所获收益完全归属上传者,每周可申请提现一次。
    如果您发现了本资源有侵权行为怎么办?
    及时联系客服QQ:2580505920,核实予以删除。

    参与讨论

    • 211会员总数(位)
    • 3737资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 862稳定运行(天)

    欢迎加入「极客文库」,成为原创作者从这里开始!

    立即加入 了解更多
    成为赞助用户享有更多特权立即升级