技术开发 频道

JDK一瞥:23个经典设计模式示例

  Builder:

  主要用来简化一个复杂的对象的创建。这个模式也可以用来实现一个 Fluent Interface。

  •   java.lang.StringBuilder#append()
  •   java.lang.StringBuffer#append()
  •   java.sql.PreparedStatement
  •   javax.swing.GroupLayout.Group#addComponent()

  Factory:

  简单来说,按照需求返回一个类型的实例。

  •   java.lang.Proxy#newProxyInstance()
  •   java.lang.Object#toString()
  •   java.lang.Class#newInstance()
  •   java.lang.reflect.Array#newInstance()
  •   java.lang.reflect.Constructor#newInstance()
  •   java.lang.Boolean#valueOf(String)
  •   java.lang.Class#forName()

  Prototype:

  使用自己的实例创建另一个实例。有时候,创建一个实例然后再把已有实例的值拷贝过去,是一个很复杂的动作。所以,使用这个模式可以避免这样的复杂性。

  •   java.lang.Object#clone()
  •   java.lang.Cloneable

  Singleton:

  只允许一个实例。在 Effective Java中建议使用Emun.

  •   java.lang.Runtime#getRuntime()
  •   java.awt.Toolkit#getDefaultToolkit()
  •   java.awt.GraphicsEnvironment#getLocalGraphicsEnvironment()
  •   java.awt.Desktop#getDesktop()
0
相关文章