iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >JDK里的经典设计模式有哪些
  • 123
分享到

JDK里的经典设计模式有哪些

2023-06-17 14:06:51 123人浏览 安东尼
摘要

本篇内容介绍了“jdk里的经典设计模式有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Adapter:把一个接口或是类变成另外一种。ja

本篇内容介绍了“jdk里的经典设计模式有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Adapter:

把一个接口或是类变成另外一种。

java.util.Arrays#asList()   javax.swing.JTable(TableModel)   java.io.InputStreamReader(InputStream)   java.io.OutputStreamWriter(OutputStream)   javax.xml.bind.annotation.adapters.XmlAdapter#marshal()   javax.xml.bind.annotation.adapters.XmlAdapter#unmarshal()

Bridge:

把抽象和实现解藕,于是接口和实现可在完全独立开来。

AWT (提供了抽象层映射于实际的操作系统)

JDBC

Composite:

让使用者把单独的对象和组合对象混用。

javax.swing.JComponent#add(Component)   java.awt.Container#add(Component)   java.util.Map#putAll(Map)   java.util.List#addAll(Collection)   java.util.Set#addAll(Collection)

Decorator:

为一个对象动态的加上一系列的动作,而不需要因为这些动作的不同而产生大量的继承类。这个模式在JDK中几乎无处不在,所以,下面的列表只是一些典型的。

  java.io.BufferedInputStream(InputStream)   java.io.DataInputStream(InputStream)   java.io.BufferedOutputStream(OutputStream)   java.util.zip.ZipOutputStream(OutputStream)   java.util.Collections#checked[List|Map|Set|SortedSet|SortedMap]()

Facade:

用一个简单的接口包状一组组件,接口,抽象或是子系统。

java.lang.Class   javax.faces.WEBapp.FacesServlet

Flyweight:

有效率地存储大量的小的对象。

java.lang.Integer#valueOf(int)   java.lang.Boolean#valueOf(boolean)   java.lang.Byte#valueOf(byte)   java.lang.Character#valueOf(char)

Proxy:

用一个简单的对象来代替一个复杂的对象。

java.lang.reflect.Proxy

RMI

Creational(创建模式)

Abstract factory:

创建一组有关联的对象实例。这个模式在JDK中也是相当的常见,还有很多的framework例如spring。我们很容易找到这样的实例。

java.util.Calendar#getInstance()   java.util.Arrays#asList()   java.util.ResourceBundle#getBundle()   java.sql.DriverManager#getConnection()   java.sql.Connection#createStatement()   java.sql.Statement#executeQuery()   java.text.NumberFORMat#getInstance()   javax.xml.transform.TransformerFactory#newInstance()

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()

Behavioral(行为模式)

Chain of responsibility:

把一个对象在一个链接传递直到被处理。在这个链上的所有的对象有相同的接口(抽象类)但却有不同的实现。

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

Command:

把一个或一些命令封装到一个对象中。

java.lang.Runnable   javax.swing.Action

Interpreter:

一个语法解释器的模式。

java.util.Pattern   java.text.Normalizer   java.text.Format

Iterator:

提供一种一致的方法来顺序遍历一个容器中的所有元素。

java.util.Iterator   java.util.Enumeration

Mediator:

用来减少对象单的直接通讯的依赖关系。使用一个中间类来管理消息的方向。

java.util.Timer   java.util.concurrent.Executor#execute()   java.util.concurrent.ExecutorService#submit()   java.lang.reflect.Method#invoke()

Memento:

给一个对象的状态做一个快照。Date类在内部使用了一个long型来做这个快照。

java.util.Date   java.io.Serializable

Null Object:

这个模式用来解决如果一个Collection中没有元素的情况。

java.util.Collections#emptyList()   java.util.Collections#emptyMap()   java.util.Collections#emptySet()

Observer:

允许一个对象向所有的侦听的对象广播自己的消息或事件。

java.util.EventListener   javax.servlet.Http.httpsessionBindingListener   javax.servlet.http.HttpSessionAttributeListener   javax.faces.event.PhaseListener

State:

这个模式允许你可以在运行时很容易地根据自身内部的状态改变对象的行为。

java.util.Iterator   javax.faces.lifecycle.LifeCycle#execute()

Strategy:

定义一组算法,并把其封装到一个对象中。然后在运行时,可以灵活的使用其中的一个算法。

java.util.Comparator#compare()   javax.servlet.http.HttpServlet   javax.servlet.Filter#doFilter()

Template method:

允许子类重载部分父类而不需要完全重写。

java.util.Collections#sort()   java.io.InputStream#skip()   java.io.InputStream#read()   java.util.AbstractList#indexOf()

Visitor:

作用于某个对象群中各个对象的操作. 它可以使你在不改变这些对象本身的情况下,定义作用于这些对象的新操作.

javax.lang.model.element.Element 和javax.lang.model.element.ElementVisitor   javax.lang.model.type.TypeMirror 和javax.lang.model.type.TypeVisitor

“JDK里的经典设计模式有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: JDK里的经典设计模式有哪些

本文链接: https://www.lsjlt.com/news/289500.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JDK里的经典设计模式有哪些
    本篇内容介绍了“JDK里的经典设计模式有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Adapter:把一个接口或是类变成另外一种。ja...
    99+
    2023-06-17
  • 开发中经常使用的设计模式有哪些
    本篇内容介绍了“开发中经常使用的设计模式有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!工厂模式这是一...
    99+
    2024-04-02
  • java的设计模式有哪些
    java的设计模式有:1.适配器模式;2.单例模式;3.工厂模式;4.策略模式;java的设计模式有以下几种适配器模式java中适配器模式的作用是将一个类的方法接口转换成客户希望的另外一个接口,从而解决接口之间不兼容的问题。单例模式java...
    99+
    2024-04-02
  • javascript的设计模式有哪些
    javascript中的设计模式有:1.单例模式,将代码组织成逻辑单元的手段;2.工厂模式,解决实列化对象产生重复的问题;3.适配模式,解决接口不兼容产生的问题;4.策略模式,将算法的使用与实现分离;javascript中的设计模式有以下几...
    99+
    2024-04-02
  • jQuery的设计模式有哪些
    这篇文章主要讲解了“jQuery的设计模式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jQuery的设计模式有哪些”吧!一、发布订阅模式var&nb...
    99+
    2024-04-02
  • spring的设计模式有哪些
    这篇文章主要讲解了“spring的设计模式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“spring的设计模式有哪些”吧!1. 简单工厂又叫做静态工厂方法(StaticFactory ...
    99+
    2023-06-03
  • laravel设计模式有哪些
    Laravel设计模式有以下几种:1. MVC模式(Model-View-Controller):Laravel框架基于MVC模式进...
    99+
    2023-09-29
    laravel
  • 初探Java设计模式4:JDK中的设计模式
    JDK中设计模式本文主要是归纳了JDK中所包含的设计模式,包括作用和其设计类图。首先来个总结,具体的某个模式可以一个一个慢慢写,希望能对研究JDK和设计模式有所帮助。一、设计模式是什么(1)反复出现问题的解决方案(2)增强软件的灵活性(3)...
    99+
    2023-06-02
  • TypeScript设计模式有哪些
    这篇文章主要讲解了“TypeScript设计模式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“TypeScript设计模式有哪些”吧!设计模式是可以帮...
    99+
    2024-04-02
  • 云计算的经典面试题有哪些
    这篇文章主要介绍“云计算的经典面试题有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“云计算的经典面试题有哪些”文章能帮助大家解决问题。1)使用云计算有哪些优点?使用云计算有下列优点:a)备份数据...
    99+
    2023-06-27
  • spring中的设计模式有哪些
    这期内容当中小编将会给大家带来有关spring中的设计模式有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、工厂模式,在各种BeanFactory以及ApplicationContext创建中都用到...
    99+
    2023-05-31
    spring
  • 有哪些常见的设计模式
    这篇文章主要讲解了“有哪些常见的设计模式”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些常见的设计模式”吧!一、建造者模式建造者模式(Builder P...
    99+
    2024-04-02
  • JDK中的设计模式简介
    这篇文章主要讲解了“JDK中的设计模式简介”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JDK中的设计模式简介”吧!设计模式是什么(1)反复出现问题的解决方案(2)增强软件的灵活性(3)适应...
    99+
    2023-06-02
  • java中有哪些设计模式
    java中有哪些设计模式?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Num1:单例模式基本概念:保证一个类仅有一个实例,并提供一个访问它的全局访问点。常见写法:饿汉式publ...
    99+
    2023-06-15
  • web设计模式有哪些类
    这篇文章主要讲解了“web设计模式有哪些类”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“web设计模式有哪些类”吧!足够简单的类上述设计在输出内容简单的时候没有什么问题,当输入内容比较复杂的...
    99+
    2023-06-19
  • Node.js中有哪些设计模式
    这期内容当中小编将会给大家带来有关Node.js中有哪些设计模式,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。什么是设计模式?设计模式是用来解决一般的,普遍发生的问题,且...
    99+
    2024-04-02
  • Python中有哪些设计模式
    Python中有哪些设计模式,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。目前的功能可以增加功能块可以增加连接线可以移动功能块可以输出JSON格式将来的功能支持基本的演算功...
    99+
    2023-06-19
  • Java常用的设计模式有哪些
    小编给大家分享一下Java常用的设计模式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Java常用的五种设计模式:1、单例设计模式;2、工厂设计模式;3、代...
    99+
    2023-06-14
  • php设计模式的原则有哪些
    PHP设计模式的原则包括以下几个:1. 单一职责原则(Single Responsibility Principle,SRP):一个...
    99+
    2023-08-14
    php
  • 常用的Android设计模式有哪些
    常用的Android设计模式有以下几种:1. MVC模式(Model-View-Controller):将应用程序分为三个部分,即数...
    99+
    2023-09-26
    Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作