
大家都学过设计模式,知道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
-
SpEL(Spring)
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