`
幸福不灭
  • 浏览: 15050 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

23种设计模式在JDK中的例子

阅读更多

抽象工厂 (类型recognizeable /界面造物方法返回一个抽象)

java.util.Calendar的#的getInstance()
java.util.Arrays#asList()
java.util.ResourceBundle#的getBundle()
#openConnection的java.net.URL()
java.sql.DriverManager来#的getConnection()
java.sql.Connection来#的createStatement()
java.sql.Statement#的executeQuery()
java.text.NumberFormat#的getInstance()
java.lang.management.ManagementFactory (所有 的getXXX() 方法)
java.nio.charset.Charset#的forName()
javax.xml.parsers.DocumentBuilderFactory#的newInstance()
javax.xml.transform.TransformerFactory#的newInstance()
javax.xml.xpath.XPathFactory#的newInstance()
生成器 (本身recognizeable造物的实例方法返回)

java.lang.StringBuilder#追加() ( 不同步)
java.lang.StringBuffer#追加() ( 同步)
java.nio.ByteBuffer#把() ( 也 CharBuffer的 , ShortBuffer , IntBuffer , LongBuffer , FloatBuffer 和 DoubleBuffer )
javax.swing.GroupLayout.Group#addComponent()
实现所有 java.lang.Appendable
工厂方法 (类型recognizeable造物的具体办法由返回)

java.lang.Object的#toString()方法 (子类重载的一切)
java.lang.Class的#的newInstance()
为java.lang.Integer#方法valueOf(String) ( 也 布尔 , 字节 , 字符 , 短 , 长 , 浮法 和 双 )
#的java.lang.Class的forName()
java.lang.reflect.Array#的newInstance()
java.lang.reflect.Constructor#的newInstance()
原型 (一recognizeable方法返回由造物 不同 属性相同的实例本身带)

java.lang.Object的#clone()方法 (类必须实现 java.lang.Cloneable )
辛格尔顿 (即recognizeable方法返回由造物 相同 的实例(本身通常的)每次)

java.lang.Runtime#getRuntime()
java.awt.Desktop#getDesktop()
结构模式

适配器 (一个实例的recognizeable造物服用方法 不同的 抽象/接口类型并返回自己的执行/另一个抽象/接口类型, 装饰/覆盖 给定的实例)

java.io.InputStreamReader(InputStream的) (返回一个 阅读器 )
java.io.OutputStreamWriter(OutputStream的) (返回一个 作家 )
javax.xml.bind.annotation.adapters.XmlAdapter#元帅() 和 #解组()
大桥 (一实例的recognizeable造物服用方法 不同的 抽象/接口类型和返回一个类型实施自己的抽象/接口,它 代表/使用 给定的实例)

谁也没有想到呢。 一个虚构的例子是 新LinkedHashMap的(LinkedHashSet的<K>,列表<V>) 返回一个不可修改的相关地图,不克隆项目,但 使用 它们。 该 java.util.Collections的#newSetFromMap() 和 singletonXXX() 方法,但是很接近。
复合材料 (附recognizeable实例由行为服用方法 相同的 抽象/接口类型)

java.util.Map的#的putAll(地图)
java.util.List的#addAll(征收)
为java.util.Set#addAll(征收)
java.nio.ByteBuffer#放(ByteBuffer的) (也 CharBuffer的 , ShortBuffer , IntBuffer , LongBuffer , FloatBuffer 和 DoubleBuffer )
java.awt.Container#加入(组件) (几乎所有的Swing从而超过)
装饰 (附recognizeable一个实例造物服用方法 相同的 抽象/接口类型)

子类的所有 java.io.InputStream , OutputStream的 , 读者 和 作家 有一个构造函数以一个相同类型的实例。
实现几乎所有 的java.util.List , 设置 和 地图 具有构造纵观同类型的实例。
java.util.Collections中 的 checkedXXX() , synchronizedXXX() 和 unmodifiableXXX() 方法。
javax.servlet.http.HttpServletRequestWrapper 和 HttpServletResponseWrapper
门面 (使用情况的recognizeable由国内的行为方式 不同的 独立抽象/接口类型)

javax.faces.context.FacesContext ,它在内部采用了一些其他人的抽象/接口类型 LifeCycle的 , ViewHandler中 , NavigationHandler 和许多)更多的最终用户无需担心它大约有(其中可重载不过,这样的注射。
javax.faces.context.ExternalContext ,它在内部使用 的ServletContext , HttpSession中 , 的HttpServletRequest , HttpServletResponse的 ,等等
享元 (理念recognizeable multiton“的造物方法返回一个缓存的实例,有点而”)

为java.lang.Integer#方法valueOf(int)的 (还 布尔 , 字节 , 字符 , 短 , 长 , 浮法 和 双 )
代理 (方法recognizeable的造物,它返回一个类型的实现给定的抽象/接口而这反过来又 代表/使用 一个 不同 类型的实现给定的抽象/接口)

java.lang.reflect.Proxy
的java.rmi .* ,整个API的实际。
维基百科的例子是恕我直言有点差,延迟加载实际上已完全无关,在所有代理的模式。

行为模式

责任链 (在recognizeable相同的方法由行为方法,(间接调用), 另一个 执行 同样的 抽象/接口类型的队列中)

java.util.logging.Logger的#日志()
javax.servlet.Filter接口#的doFilter()
命令 (一recognizeable执行由行为方式在一个抽象/接口类型的其中一个方法中调用 不同的 抽象/接口类型已经 封装 了其创建命令执行期间)

实现所有 java.lang.Runnable的
实现所有 javax.swing.Action
分享到:
评论

相关推荐

    java设计模式(chm)和jdk中文api文档(chm)

    介绍java二十三种设计模式,包括模式的描述,适用性,模式的组成部分,并附带有简单的例子和类图,目的是为了让读者了解二十三种设计模式,并能方便的查阅各种设计模式的用法及注意点,希望对大家有所帮助。...

    设计模式之观察者模式Java实现

    设计模式之观察者模式Java版本实现和UML类设计图

    设计模式之外观模式

    java的23种常用设计模式之外观模式,经典的例子解析。

    Java设计模式——代理设计模式(静态代理和动态代理)

    Java设计模式——代理设计模式(静态代理和动态代理) 各种情况例子源码

    Java多线程编程实战指南-设计模式篇

    然而,多线程编程相关的设计模式书籍多采用C++作为描述语言,且书中所举的例子多与应用开发人员的实际工作相去甚远。《Java多线程编程实战指南(设计模式篇)》采用Java(JDK1.6)语言和UML 为描述语言,并结合作者...

    详解Observer Pattern(观察者模式)在Java中的使用原理

    该示例是翻写一老外Observer Pattern的例子,本人觉得该示例是对该模式的非常精典的说明,于是花点功夫来翻写它,因为他的代码没有注释说明该模式的设计思想怎样体现在代码中去,所以,本人结合代码注释了关键代码的...

    【原创】JDK1.8 教程,不用任何框架实现MVC架构和仿spring注入管理的例子

    一个全面使用JDK1.8语法的J2EE示例,附带模拟数据库操作和基于注解的Bean注入管理。供J2EE开发新手学习。无需spring,掌握SpringMvc主要的开发思路。

    java设计模式选择题复习题.doc

    行为型特点:怎样合理的设计对象之间的交互通信,以及怎样合理的为对象分配职 结构型特点:主要用于处理类或对象的组合 Java jdk中使用了哪些设计模式 1.单例2.静态工厂3.工厂方法4.抽象工厂5.构造者6.原型7.适配器...

    java高级特性,涵盖了多种java常用的一些例子

    涉及多种线程,死锁,同步队列,异步线程,涵盖了java的自定义注解及反射,包含了23种设计模式,含注释, 线程1(基本应用) 线程2(同步,死锁,线程池) 注解和泛型 Java 注解(Annotation)又称 Java 标注,是 ...

    两万字吐血总结,代理模式及手写实现动态代理(aop原理,基于jdk动态代理)

    代理模式及手实现动态代理(aop原理)一、代理模式1. 定义2. 示例(1)静态代理(2)动态代理3...代理模式(Proxy Pattern) 是一个使用频率非常高的设计模式,其定义如下: Provide a surrogate or placeholder for an

    Java JDK实例宝典

    全部代码出自电子工业出版社夏先波的《Java JDK实例宝典》一书,本书以J2SE 5.0为开发环境,选取Java应用的典型实例,循序渐进地介绍了Java语言的各种开发方法和技巧,实例代码注释详细规范,思路清晰。 第1章 ...

    jdk_source_learning:jdk原始码学习笔记,人话翻译

    目前工作当中也并没有应用到这些,因此希望通过结合实际例子来学习,巩固之前学到的内容,思前想后觉得jdk原始码实际上非常适合学习,首先jdk的一些类在工作中使用频率非常高,并且他的实现结合了很多的设计模式,和...

    java版五子棋源码-DesignPatternLearning:设计模式的Java实现

    设计模式Java实现 这里只是设计模式的一些Java代码实例演示. 作为&lt;软件秘籍 设计模式那点事&gt;的代码笔记保存, 还有一些例子. 第一部分 创建型模式 1.简单工厂模式SimpleFactory 简单来说就是根据参数的不同返回...

    招银网络java科技笔试题-WaytoInterview:JVM和设计模式和算法的快速浏览

    各种经典的设计模式以及简单例子 工厂模式 适配器模式 过滤器模式 代理模式 MVC模式 策略模式 Algorithm 剑指Offer上的算法题目的Java实现 常用排序算法 Leetcode IsomorphicStrings_lc205 lowestCommonAncestor_lc...

    leetcode分类-Java-grammar1:java学习资料,使用技巧,各方面应用,基于jdk1.8.151版本之前的总结,各个版本更改

    不适用于新手观看,适用于已经会java的童鞋们复习阅读,加强记忆,形成记忆网络,工作中大多数例子会使用,实战利器,有利于加快写代码速度. 更新简介 2018.08.18 更新算法,leetcode算法 2018.08.18 更新java,简单netty...

    汪文君高并发编程实战视频资源全集

    │ 高并发编程第二阶段39讲、多线程Active Objects设计模式(接受异步消息的主动对象)-中.mp4 │ 高并发编程第二阶段40讲、多线程Active Objects设计模式(接受异步消息的主动对象)-下.mp4 │ 高并发编程第二阶段41...

    汪文君高并发编程实战视频资源下载.txt

    │ 高并发编程第二阶段39讲、多线程Active Objects设计模式(接受异步消息的主动对象)-中.mp4 │ 高并发编程第二阶段40讲、多线程Active Objects设计模式(接受异步消息的主动对象)-下.mp4 │ 高并发编程第二阶段41...

    java基础笔记

    一、 设计模式及架构模式 26 二、简单工厂 26 三、单态 28 四、嵌套类 29 五、无名内部类 30 第十节 7月30日 31 一、 异常 31 二、 方法抛出异常 32 三、 throw 抛出 32 四、 自定异常 32 五、 包 33

    mybatis-examples

    "jdbc:hsqldb:mem:testdb"username = "sa"password = ""mybatis使用到的设计模式代理模式JDK Proy://org.apache.ibatis.binding.MapperProxyFactory.newInstance(org.apache.ibatis.binding.MapperProxy) protected ...

    java迭代器模式.rar

    迭代这个名词对于熟悉Java的人来说绝对不陌生。我们常常使用JDK提供的迭代接口进行java collection的遍历: Iterator it = list.iterator(); while(it.hasNext()){ ...而这就是关于迭代器模式应用很好的例子。

Global site tag (gtag.js) - Google Analytics