设计模式分类及典型实现

创建型模式(5)

       创建型模式,就是创建对象的模式,抽象了实例化的过程。它帮助一个系统独立于如何创建、组合和表示它的那些对象。创建型模式关注的是对象的创建,将创建的过程进行了抽象,也可以理解为将创建对象的过程进行了封装,作为客户程序仅仅需要去使用对象,而不再关心创建对象的过程。

  • 工厂及工厂方法模式(Factory Method)
  • 抽象工厂模式(Abstract Factory)
  • 单例模式(Singleton)
  • 原型模式(Prototype)
  • 创建者模式(Builder)

【结构型模式】(7)

      结构型模式解决如何组装现有的类,设计它们的交互方式,从而达到实现一定的功能。

  • 外观模式/门面模式(Facade
  • 适配器模式(Adapter)
  • 代理模式(Proxy)
  • 装饰模式(Decorator)
  • 桥模式(Bridge)
  • 组合模式(Composite
  • 享元模式(Flyweight)

【行为型模式】(11种)

       行为型模式是对不同对象之间划分责任和算法的抽象化,行为型模式不仅仅关注类和对象的结构,而且重点关注它们之间的相互作用,通过行为型模式,可以更加清晰地划分类和对象的职责,并研究系统在运行时实例对象之间的交互。

  • 模板方法模式(Template  Method)
  • 观察者模式(Observer)
  • 状态模式(State)
  • 策略模式(Strategy)
  • 职责链模式(Chain of Responsibility)
  • 命令模式(Command)
  • 访问者模式(Visitor)
  • 调停者模式(Mediator)
  • 备忘录模式(Memento)
  • 迭代器模式(Iterator)
  • 解释器模式(Interpreter)

典型实现

   【工厂及工厂方法模式(Factory Method)

  • java.lang.Class#newInstance()
  • java.lang.Integer#valueOf(String)
  • java.lang.Class#forName()
  • java.lang.reflect.Array#newInstance()

 抽象工厂模式(Abstract Factory)

  • java.util.Arrays#asList()
  • java.util.ResourceBundle#getBundle()
  • java.net.URL#openConnection()
  • java.sql.DriverManager#getConnection()
  • java.sql.Connection#getSatement()
  • java.sql.Statement#executeQuery()
  • java.text.NumberFormat#getInstance()
  • java.nio.charset.Charset#forName()
  • javax.xml.parsers.DocumentBuilderFactory#newInstance()
  • javax.xml.transform.TransformerFactory#newInstance()

【单例模式(Singleton)

  • java.lang.Runtime#getRuntime()
  • java.awt.Desktop#getDesktop()

【原型模式(Prototype)】:实现 Cloneable 接口的类,主要重写了 clone() 方法

  • java.util.Date#clone()

【创造者模式(Builder)

  • java.lang.StringBuilder#append()
  • java.nio.ByteBuffer、CharBuffer 的 put()

【适配器模式(Adapter)

  • java.io.InputStreamReader(InputStream)
  • java.io.OutputStreamWriter(OutputStream)

【外观模式/门面模式(Facade)

  • java.faces.context.FacesContext

【创造者模式(Builder)

  • java.lang.StringBuilder#append()

【代理模式(Proxy)

  • java.lang.reflect.Proxy

【装饰模式(Decorator)

  • java.io.InputStream、OutputStream、Reader、Writer 及它们的子类
  • javax.servlet.http.HttpServletRequestWrapper 和 HttpServletResponseWrapper

【桥模式(Bridge)

  • 待添加

【组合模式(Composite)

  • java.util.Map#putAll(Map)
  • java.util.List#addAll(Collection)
  • java.util.Set#addAll(Collection)
  • java.nio.ByteBuffer#put(ByteBuffer)

【享元模式(Flyweight)

  • 待添加

【模板方法模式(Template  Method)

  • javax.servlet.http.HttpServlet 中所有的 doXXX() 的方法

【观察者模式(Observer)

  • java.util.Observer / java.util.Observable
  • java.util.EventListener 的实现类
  • javax.servlet.http.HttpSessionBindingListener
  • javax.servlet.http.HttpSessionAttributeListener
  • javax.faces.event.PhaseListener 

【状态模式(State)

  • 待添加

【策略模式(Strategy)

  • javax.lang.model.element.Annotation 和 AnnotationValueVisitor
  • javax.lang.model.element.Element 和 ElementVisitor
  • javax.lang.model.type.TypeMirror 和 TypeVisitor

【职责链模式(Chain of Responsibility)

  • java.util.logging.Logger#log()
  • javax.servlet.Filter#doFilter()

【命令模式(Command)】:接口一般定义了 execute() 方法

  • java.lang.Runnable 和其实现类
  • java.swing.Action 和其实现类

【访问者模式(Visitor)

  • 待添加

【调停者模式(Mediator)】:也叫中介者

  • java.util.concurrent.Executor#execute()
  • java.lang.reflect.Method#invoke()

【备忘录模式(Memento)

  • javax.faces.component.StateHolder 的实现类

【迭代器模式(Iterator)

  • 迭代器, java 中继承 Iterator 接口的类

【解释器模式(Interpreter)

  • java.text.Normalizer
  • java.text.Format 和 javax.el.EL.Resolver 的子类

转载于:https://www.cnblogs.com/zlxyt/p/10971717.html

23种设计模式java实现。创建型 抽象工厂模式 http://www.cnblogs.com/java-my-life/archive/2012/03/28/2418836.html 工厂方法 http://www.cnblogs.com/java-my-life/archive/2012/03/25/2416227.html 建造者模式 http://www.cnblogs.com/java-my-life/archive/2012/04/07/2433939.html 原型模式 http://www.cnblogs.com/java-my-life/archive/2012/04/11/2439387.html 单态模式 http://www.cnblogs.com/java-my-life/archive/2012/03/31/2425631.html 结构型 适配器模式 http://www.cnblogs.com/java-my-life/archive/2012/04/13/2442795.html 桥接模式 http://blog.csdn.net/jason0539/article/details/22568865 组合模式 http://blog.csdn.net/jason0539/article/details/22642281 外观模式 http://blog.csdn.net/jason0539/article/details/22775311 装饰者模式 http://www.cnblogs.com/java-my-life/archive/2012/04/20/2455726.html 享元模式 http://www.cnblogs.com/java-my-life/archive/2012/04/26/2468499.html 代理模式 http://www.cnblogs.com/java-my-life/archive/2012/04/23/2466712.html 行为型 责任链模式 http://blog.csdn.net/zhouyong0/article/details/7909456 命令模式 http://www.cnblogs.com/java-my-life/archive/2012/06/01/2526972.html 解释器模式 http://www.cnblogs.com/java-my-life/archive/2012/06/19/2552617.html 迭代模式 http://www.cnblogs.com/java-my-life/archive/2012/05/22/2511506.html 中介者模式 http://blog.csdn.net/chenhuade85/article/details/8141831 备忘录模式 http://www.cnblogs.com/java-my-life/archive/2012/06/06/2534942.html 观察者模式 http://www.cnblogs.com/java-my-life/archive/2012/05/16/2502279.html 状态模式 http://www.cnblogs.com/java-my-life/archive/2012/06/08/2538146.html 策略模式 http://www.cnblogs.com/java-my-life/archive/2012/05/10/2491891.html 模板方法模式 http://www.cnblogs.com/java-my-life/archive/2012/05/14/2495235.html 访问者模式 http://www.cnblogs.com/java-my-life/archive/2012/06/14/2545381.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值