- 浏览: 215764 次
- 性别:
- 来自: 北京
文章分类
1.抽象工厂模式
实例1:
public static Calendar getInstance()
{
Calendar cal = createCalendar(TimeZone.getDefaultRef(),Locale.getDefault());
cal.sharedZone = true;
return cal;
}
Calendar类将构造方法进行私有话,这样获取对象实例只能通过getInstance()方法了。每次访问该方法返回的是一个新生成的对象。
有意思的是Locale.getDefault()也是一个利用了工厂模式,而且是将单例模式和工厂模式的结构来生成一个单例对象。
实例2:
public static Connection getConnection(String url,
String user, String password) throws SQLException {
java.util.Properties info = new java.util.Properties();
// Gets the classloader of the code that called this method, may
// be null.
ClassLoader callerCL = DriverManager.getCallerClassLoader();
if (user != null) {
info.put("user", user);
}
if (password != null) {
info.put("password", password);
}
return (getConnection(url, info, callerCL));
}
使用JDBC的人都调用过该方法。该方法也是典型工厂模式。
因为该方法是对外的入口,所以将该方法生命为public的。虽然该类拥有很多构造方法,但是最后返回实例的都是依靠getConnection(url, info, callerCL)方法,因为他会将传入的参数都封装到properties对象中。最后再调用该方法。做到了很好的封装与代码复用。而且getConnection(url, info, callerCL)也被设计成是是有的方法,就能保住该方法只给其余构造方法进行调用了。
2.单例模式
实例:
private static Runtime currentRuntime = new Runtime();
public static Runtime getRuntime() {
return currentRuntime;
}
Runtime是一个典型的单例模式,而且是懒汉式的单例模式。
3.模版模式
实例:
OutputStream类的
public abstract void write(int b) throws IOException;
OutputStream的写操作交给了子类去实现,例如FileOutputStream类会调用native的write方法。
public native void write(int b) throws IOException;注意native方法没有实现体。
4.策略模式
TreeMap类的
public TreeMap(Comparator<? super K> comparator) {
this.comparator = comparator;
}
comparator类是一个接口,里面只包含比较两个对象的方法。
treemap会根据传入的自定义比较器的compare方法判断插入的值应该存放的位置。
即传入的参数对象可能有不同的实现类
5.命令模式
Runnable接口
Runnable是一个典型的命令模式,即每个线程都需要执行不同的操作,因此定义一个命令接口,即Runnable接口。然后使用时需要将Runnable对象传入给Thread类中,Thread就相当于一个调用者(机箱),然后用户对thread对像进行调用就可以执行runnable中定义的操作了。
实例1:
public static Calendar getInstance()
{
Calendar cal = createCalendar(TimeZone.getDefaultRef(),Locale.getDefault());
cal.sharedZone = true;
return cal;
}
Calendar类将构造方法进行私有话,这样获取对象实例只能通过getInstance()方法了。每次访问该方法返回的是一个新生成的对象。
有意思的是Locale.getDefault()也是一个利用了工厂模式,而且是将单例模式和工厂模式的结构来生成一个单例对象。
实例2:
public static Connection getConnection(String url,
String user, String password) throws SQLException {
java.util.Properties info = new java.util.Properties();
// Gets the classloader of the code that called this method, may
// be null.
ClassLoader callerCL = DriverManager.getCallerClassLoader();
if (user != null) {
info.put("user", user);
}
if (password != null) {
info.put("password", password);
}
return (getConnection(url, info, callerCL));
}
使用JDBC的人都调用过该方法。该方法也是典型工厂模式。
因为该方法是对外的入口,所以将该方法生命为public的。虽然该类拥有很多构造方法,但是最后返回实例的都是依靠getConnection(url, info, callerCL)方法,因为他会将传入的参数都封装到properties对象中。最后再调用该方法。做到了很好的封装与代码复用。而且getConnection(url, info, callerCL)也被设计成是是有的方法,就能保住该方法只给其余构造方法进行调用了。
2.单例模式
实例:
private static Runtime currentRuntime = new Runtime();
public static Runtime getRuntime() {
return currentRuntime;
}
Runtime是一个典型的单例模式,而且是懒汉式的单例模式。
3.模版模式
实例:
OutputStream类的
public abstract void write(int b) throws IOException;
OutputStream的写操作交给了子类去实现,例如FileOutputStream类会调用native的write方法。
public native void write(int b) throws IOException;注意native方法没有实现体。
4.策略模式
TreeMap类的
public TreeMap(Comparator<? super K> comparator) {
this.comparator = comparator;
}
comparator类是一个接口,里面只包含比较两个对象的方法。
treemap会根据传入的自定义比较器的compare方法判断插入的值应该存放的位置。
即传入的参数对象可能有不同的实现类
5.命令模式
Runnable接口
Runnable是一个典型的命令模式,即每个线程都需要执行不同的操作,因此定义一个命令接口,即Runnable接口。然后使用时需要将Runnable对象传入给Thread类中,Thread就相当于一个调用者(机箱),然后用户对thread对像进行调用就可以执行runnable中定义的操作了。
发表评论
-
多种单例模式的分析
2012-03-28 18:06 0blog.csdn.net/derpvailzhangfan/ ... -
JDK中的设计模式
2012-03-14 22:56 01.Abstract Factory •java.util.C ... -
简单工厂模式使用心得(使用场景)
2012-02-23 18:24 11520在实际项目中,简单工厂模式是我们使用的最多的设计模式之一,简单 ... -
AbstractList中Iterator模式的妙用
2012-01-13 11:51 974AbstractList中为了实现顺序访问AbstractLi ... -
适合使用命令模式的情景
2012-01-13 11:31 913情景1.当借个类都拥有 ... -
Iterator模式
2012-01-13 10:57 888我个人常叫它游标模式,该模式的主要目的就是,顺序访问集合中的各 ... -
使用工厂设计模式的场景
2012-01-12 15:43 2786创建类对象虽然可以使用new(底层也是通过反射创建对象的),但 ... -
JDK中使用的设计模式代码实例
2012-01-05 17:38 0http://stackoverflow.com/questi ... -
享元模式
2011-12-23 10:22 1034通常情况下,我们会需 ... -
策略模式
2011-12-22 17:07 876所谓策略模式就是定义了多种算法,而让不同算法之间的切换不会影响 ... -
合成设计模式
2011-12-22 16:28 983如果要将对象组织到树中,使用树来表示对象之间的关系,请考虑使用 ... -
责任链模式
2011-12-20 18:35 838此文转正于http://wenku.baidu.com/vie ... -
桥梁设计模式
2011-12-19 18:19 837如果有很多对象要处理,而又有很多操作要做。这时可以考虑使用桥梁 ... -
多线程设计模式(Thread-Specific storage)
2011-12-12 15:29 5850引用自http://www.riabook.cn/doc/de ... -
代理模式
2011-11-30 15:26 932代理模式实际上是对对象的一种代理,以控制对象的访问。 有些情况 ... -
观察者模式
2011-11-16 14:48 1415声明转载的,简单易懂,呵呵 观察者模式的构造 l 抽 ... -
命令模式
2011-11-16 14:11 1251今天想学学命令模式,看见了一个文章讲的就是命令模式,感觉实例比 ... -
建造模式
2011-11-14 12:03 913建造模式是将负责对象 ... -
设计模式之适配器模式
2011-11-09 18:24 966适配器模式:主要是为了解决,老的对象在新的环境中不兼容的现象。 ... -
设计模式之模版方法
2011-11-09 16:31 818模版方法是一种非常简单的设计模式:简单的理解就是将关键的业务方 ...
相关推荐
### JDK中的设计模式 设计模式是在软件开发过程中总结出来的最佳实践,它们可以帮助开发者解决常见的问题并提高代码的可维护性和可扩展性。Java Development Kit (JDK) 中包含了许多设计模式的应用实例,这些实例...
### JAVA设计模式在JDK中的应用 #### 一、引言 在软件开发过程中,设计模式作为一套被广泛接受的解决方案,能够帮助开发者解决常见的设计问题。Java作为一门流行的编程语言,其标准库(JDK)中巧妙地融入了多种设计...
JDK 中的 23 个设计模式简介 在 Java 开发领域,设计模式是一个非常重要的概念,它能够帮助开发者写出更加灵活...本文只是对 JDK 中 23 个经典设计模式的简单介绍,希望能够帮助开发者更好地理解和使用这些设计模式。
【设计模式概述】 设计模式是软件工程中经过实践...学习JDK中的设计模式可以让我们更好地理解Java库的设计思想,提升编程技巧,同时也能帮助我们更有效地运用这些模式到自己的项目中,编写出高质量、易于维护的代码。
设计模式在JDK中的应用课设--PPT资源 题目要求: 设计模式在JDK中的应用(结合JDK源码,分析JDK对设计模式的支持与应用)。课设内容包括: (a)用UML类图分析JDK所支持或应用的设计模式的结构,并与GOF的结构加以...
这些模式被广泛应用于Java等面向对象语言中,JDK(Java Development Kit)本身就是一个很好的实践场所,因为它包含了大量使用这些设计模式的例子。下面我们将详细探讨JDK中的23个设计模式及其应用。 1. 单例模式...
设计模式在JDK中的应用课设完整报告,Word文档 题目要求: 设计模式在JDK中的应用(结合JDK源码,分析JDK对设计模式的支持与应用)。课设内容包括: (a)用UML类图分析JDK所支持或应用的设计模式的结构,并与GOF的...
总的来说,设计模式和JDK源码的结合学习,不仅能够帮助我们理解设计模式的理论知识,还能让我们看到这些模式在实际系统中的应用,从而提升我们的编程能力和软件设计水平。在日常开发中,我们应该积极应用设计模式,...
6. **Java编程最佳实践:** 如异常处理策略、设计模式、代码规范等。 7. **开发工具:** Javadoc用于生成API文档,Javac是Java编译器,JConsole用于监视JVM性能,JProfiler进行深入性能分析等。 8. **新特性实验...
介绍java二十三种设计模式,包括模式的描述,适用性,模式的组成部分,并附带有简单的例子和类图,目的是为了让读者了解二十三种设计模式,并能方便的查阅各种设计模式的用法及注意点,希望对大家有所帮助。...
5. **Optional类**:Optional类是用来防止空指针异常的一种设计模式。它代表一个值存在或不存在,强制程序员显式处理缺失值的情况,提高了代码的健壮性。 6. **Date与Time API的改进**:JDK1.8对日期和时间API进行...
本主题将深入探讨JDK中的重要工具、JVM(Java Virtual Machine)的垃圾回收机制以及23种经典的设计模式。 首先,JDK工具介绍: 1. `javac`:这是Java的编译器,用于将源代码编译成可执行的字节码。 2. `java`:这个...
│ 3.2代码实战-单例设计模式中的懒汉实现方式.mp4 │ 3.4单例模式中的饿汉实现和选择问题.mp4 │ 3.5JDK源码里面的单例设计模式.mp4 │ 4.2电商支付应用案例-简单工厂模式实践指南.mp4 │ 5.1-创建型设计模式-...
JDK中许多类和方法都使用了设计模式,这些模式的应用帮助实现了代码的高内聚、低耦合,提高了代码的可维护性和扩展性。下面介绍几种常见的设计模式及其在JDK中的应用实例: a) 抽象工厂模式(AbstractFactory) ...
JDK 8的Optional类也是一个重要的设计模式,它帮助解决null引用的问题,鼓励更清晰的代码结构。Optional对象表示可能为null的值,通过`isPresent()`、`get()`、`orElse()`等方法,可以避免空指针异常,使代码更具...
JDK 1.8引入了Lambda表达式,这是一种简洁的编写匿名函数的方式,它可以作为方法参数,或者在没有名字的方法中使用。Lambda表达式使代码更加简洁,减少了回调地狱的问题,提高了代码的可读性。 2. **函数式接口** ...
对于开发者来说,不断学习和探索新的技术资源是提升技能的关键,这个链接可能会引导你找到更多的Java或编程相关的学习资料,比如框架教程、设计模式书籍等。 3. `E书说明.txt`:这是一个文本文件,通常用于提供关于...
阿里10年工作经验大牛讲解设计模式(带案例) 设计模式综合案例 jdk中的设计模式 备忘录模式 策略模式 访问者模式 解释器模式 命令模式 调停者模式 状态模式 多人联机射击游戏在实际开发中综合使用设计模式
- `DiscountStyle`接口及其几个实现类(`DiscountStyleOne`、`DiscountStyleTwo`、`DiscountStyleThree`)的代码片段,显示了设计模式中接口和实现类的用法,这里主要体现了策略模式,允许在运行时选择算法的行为。...
day40 设计模式、jdk8新特性