`
Simon.C
  • 浏览: 169374 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

经典设计模式在JDK中的体现

阅读更多

1.Singleton(单例)
作用:保证类只有一个实例;提供一个全局访问点
JDK中体现:
(1)Runtime
(2)NumberFormat

 

2.Factory(静态工厂)
作用:
(1)代替构造函数创建对象
(2)方法名比构造函数清晰
JDK中体现:
(1)Integer.valueOf
(2)Class.forName

 

3.Factory Method(工厂方法)
作用:子类决定哪一个类实例化
JDK中体现:Collection.iterator方法

 

4.Abstract Factory(抽象工厂)
作用:创建某一种类的对象
JDK中体现:
(1)java.sql包
(2)UIManager(swing外观)

 

5.Builder(构造者)
作用:
(1)将构造逻辑提到单独的类中
(2)分离类的构造逻辑和表现
JDK中体现:DocumentBuilder(org.w3c.dom)

 

6.Prototype(原型)
作用:
(1)复制对象
(2)浅复制、深复制
JDK中体现:Object.clone;Cloneable

 

7.Adapter(适配器)
作用:使不兼容的接口相容
JDK中体现:
(1)java.io.InputStreamReader(InputStream)
(2)java.io.OutputStreamWriter(OutputStream)

 

8.Bridge(桥接)
作用:将抽象部分与其实现部分分离,使它们都可以独立地变化
JDK中体现:java.util.logging中的Handler和Formatter

 

9.Composite(组合)

作用:一致地对待组合对象和独立对象
JDK中体现:
(1)org.w3c.dom
(2)javax.swing.JComponent#add(Component)

 

10.Decorator(装饰器)

作用:为类添加新的功能;防止类继承带来的爆炸式增长
JDK中体现:
(1)java.io包
(2)java.util.Collections#synchronizedList(List)

 

11.Façade(外观)

作用:
(1)封装一组交互类,一致地对外提供接口
(2)封装子系统,简化子系统调用
JDK中体现:java.util.logging包

 

12.Flyweight(享元)

作用:共享对象,节省内存
JDK中体现:
(1)Integer.valueOf(int i);Character.valueOf(char c)
(2)String常量池

 

14.Proxy(代理)
作用:
(1)透明调用被代理对象,无须知道复杂实现细节
(2)增加被代理类的功能
JDK中体现:动态代理;RMI

 

15.Iterator(迭代器)

作用:将集合的迭代和集合本身分离
JDK中体现:Iterator、Enumeration接口

 

16.Observer(观察者)
作用:通知对象状态改变
JDK中体现:
(1)java.util.Observer,Observable
(2)Swing中的Listener

 

17.Mediator(协调者)
作用:用于协调多个类的操作
JDK中体现:Swing的ButtonGroup

 

18.Template method(模板方法)
作用:定义算法的结构,子类只实现不同的部分
JDK中体现:ThreadPoolExecutor.Worker

 

19.Strategy(策略)
作用:提供不同的算法
JDK中的体现:ThreadPoolExecutor中的四种拒绝策略

 

20.Chain of Responsibility(责任链)
作用:请求会被链上的对象处理,但是客户端不知道请求会被哪些对象处理
JDK中体现:
(1)java.util.logging.Logger会将log委托给parent logger
(2)ClassLoader的委托模型

 

21.Command(命令)
作用:
(1)封装操作,使接口一致
(2)将调用者和接收者在空间和时间上解耦合
JDK中体现:Runnable;Callable;ThreadPoolExecutor

 

22.Null Object(空对象)
作用:不需每次判空,对待空值,如同对待一个相同接口的对象
JDK中体现:Collections.EMPTY_LIST

 

23.Interpreter(解释器)
作用:用一组类代表某一规则
JDK中体现:java.util.regex.Pattern
类图:四则运算

分享到:
评论

相关推荐

    JAVA设计模式在JDK中的应用

    本文将详细介绍在JDK中体现的23种经典设计模式,并通过具体的代码示例进行说明。 #### 二、设计模式分类 设计模式可以大致分为三类:创建型模式、结构型模式和行为型模式。接下来我们将分别探讨这三类模式在JDK中的...

    JDK中有关23个经典设计模式的示例

    GOF(Gamma, Helm, Johnson, Vlissides)在他们的著作《设计模式:可复用面向对象软件的基础》中提出了23种经典设计模式。这些模式被广泛应用于Java等面向对象语言中,JDK(Java Development Kit)本身就是一个很好...

    设计模式实战、jdk源码|simple-demo.zip

    深入研究JDK源码,能让我们直观地看到设计模式在实际应用中的体现。例如,单例模式在`java.lang.Runtime`类中得到实现,使用双重检查锁定(DCL)确保线程安全;工厂方法模式在`java.util.Calendar`类族中广泛应用,...

    design-pattern:7大设计原则+ 23种设计模式(含UML类图)+设计模式在JDK中的源码分析Java语言

    通过分析JDK中的源码,我们可以看到这些设计模式如何在实际项目中被广泛运用,例如`java.util.concurrent`包中的线程池实现了生产者消费者模式,`java.util.EventListener`接口及其子接口体现了观察者模式,`java....

    设计模式大作业-蛋糕预定系统实验报告.pdf

    - `DiscountStyle`接口及其几个实现类(`DiscountStyleOne`、`DiscountStyleTwo`、`DiscountStyleThree`)的代码片段,显示了设计模式中接口和实现类的用法,这里主要体现了策略模式,允许在运行时选择算法的行为。...

    java 23种设计模式的类图

    Java设计模式是软件开发中的重要概念,它是一种在特定情境下解决常见问题的经验总结和最佳实践。这23种设计模式被广泛应用于构建可维护、可扩展和可复用的软件系统。每一种模式都提供了在面向对象设计中处理特定问题...

    JDK1.6版本下载

    4. **动态代理**:Java代理类现在可以动态创建,增强了元编程能力,这对于实现AOP(面向切面编程)和其他设计模式大有裨益。 5. **改进的内存管理**:JVM在垃圾回收方面进行了优化,降低了内存碎片,提高了整体性能...

    77丨开源实战一(下):通过剖析JavaJDK源码学习灵活应用设计模式1

    在本节课程中,我们将深入探讨模板模式以及其在Java JDK中的实际应用,特别是通过分析...通过学习Java JDK中的设计模式,我们可以更好地理解这些模式在实际项目中的应用,从而在自己的开发工作中更加游刃有余。

    java的设计模式 《设计模式-java语言中的应用.pdf》

    设计模式是软件工程中的一种最佳实践,它是在特定上下文中解决常见问题的模板或蓝图。在Java编程中,设计模式的应用极大地提高了代码的可读性、可维护性和可复用性。《设计模式——Java语言中的应用》这本书深入探讨...

    设计模式java 版本

    设计模式是软件工程中的一种最佳实践,它是在特定上下文中解决常见问题的模板。在Java中,设计模式尤其重要,因为它们有助于创建可维护、可扩展且高效的代码。本资料包含23种经典设计模式的Java实现,这些模式都是...

    jdk1.8.0_291安装包

    5. **默认方法**:在接口中添加了默认方法,允许接口具有实现,而不必强制实现类覆盖所有方法,这在设计模式和扩展库中非常有用。 6. ** Nashorn JavaScript引擎**:Java 8引入了一个内置的JavaScript引擎,允许...

    设计模式面试题

    说出在标准JDK中使用的一些设计模式。** - **装饰器模式**:在Java I/O库中,如`BufferedReader`和`BufferedWriter`。 - **单例模式**:`java.util.Calendar`类中的实现。 - **工厂模式**:在`java.lang.Class`类...

    设计模式全部文件打包

    设计模式是软件工程中的一种重要思想,它代表了在特定情境下解决问题的优秀方案,能够提升代码的可读性、可维护性和复用性。在这个“设计模式全部文件打包”中,我们可以期待找到一系列关于设计模式的学习资料,帮助...

    jdk1.8.0源码.rar

    通过研究JDK 1.8.0的源码,开发者可以深入理解这些特性的实现原理,提升编程技能,并为自己的项目选择合适的设计模式。同时,对于JavaFX的学习,理解其与Java SE的集成以及如何在实际应用中运用新特性,将有助于构建...

    java 设计模式eclipse用法大全

    在Eclipse中有效地运用设计模式,能够提升开发效率和代码质量。 1. **单例模式**: 单例模式确保一个类只有一个实例,并提供全局访问点。在Eclipse中,可以使用静态内部类实现线程安全的单例,避免了同步问题。 2. ...

    jdk1.8 java官网正式版linux 64位-jdk-8u202-linux-x64.tar.gz

    JDK 1.8还引入了接口默认方法,使得接口可以在不破坏向后兼容性的前提下添加新方法,这在设计模式和库的扩展中非常有用。另外,Date和Calendar类得到了改进,引入了新的时间日期API(java.time),提供了更加直观和...

    java 官方原版jdk 1.6

    在这个"java 官方原版 jdk 1.6"的压缩包文件中,我们主要关注的是文件"jdk-6u45-windows-x64",这是一个专为Windows 64位操作系统设计的JDK安装包。 1. **JDK组成**:JDK的核心组件包括Java编译器(javac)、Java...

    设计模式面试专题.pdf

    在Java中,设计模式已经被广泛应用在JDK的类库中,以及在日常的编程实践中。 首先,我们来看看在Java中一些常用的设计模式及其在JDK中的实际应用。例如,单例模式确保一个类只有一个实例,并提供一个全局访问点。...

Global site tag (gtag.js) - Google Analytics