JDK里哪些地方用到了设计模式

JDK里哪些地方用到了设计模式
《Design Patterns: Elements of Reusable Object-Oriented Software》

大家都学过设计模式,知道GoF的23种模式。不知道除了玩具代码,是否见过生产级别的代码范例。

清单

今天拉个清单,JDK和常用库里哪里用到了这些设计模式。

Builder

  • StringBuilder

Factory Method

  • Collection的iterator()

Prototype

  • Cloneable

Singleton

  • java.lang.Runtime
  • Unsafe

Adaptor

  • Arrays.asList

Decorator

Collections wrappers

Bridge

  • JDBC

Composite

  • java.io streams

Façade

  • java.util.concurrent.Executors

Flyweight

  • All Enum
  • TimeUnit

Proxy

  • Proxy
  • collection wrappers

Chain of Responsibility

  • ClassLoader
  • Properties

Command

  • Executor framework

Iterator

  • collections
  • for-each

Observer

  • Swing
  • java.util.EventListener

Strategy

  • Comparator

Template method

  • AbstractList

Interpreter

Abstract Factory

  • FactoryBean
  • ProxyFactoryBean
  • LocalSessionFactoryBean

Visitor

  • java.nio.file.FileVisitor

Mediator

  • java.lang.reflect.Method#invoke

State

  • javax.faces.lifecycle.LifeCycle#execute

Memento

  • javax.faces.component.StateHolder

后话

设计模式主要还是为了解决语言缺失。像这里面迭代器模式虽然是个模式,Java本身for支持的比较好, 几乎都不用专门去写了。至于装饰器模式,不少时候,是用来解决Java不允许多重继承问题时候用的。建造器,很大程度是为了弥补构造器对动态参数和动态步骤应对不足的。访问者模式比较重要,是为了动态派遣,groovy里写起来就简单的多。

原文始发于微信公众号(K字的研究):JDK里哪些地方用到了设计模式

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/24815.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!