`
samana
  • 浏览: 20651 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

java模式温习四

阅读更多

 

和经理讨论下了关于模式的学习,也反馈自己的掌握模式的程度。

单单举一个java.lang.Boolean类里具体用到了哪些设计模式?

 

分析列举下:

1.Singleton

必然用到了Singleton,查看下API,原来一个变种的Singleton,有两个对象TRUE和FALSE,是两个,而不是一个,但思路是一样的,就有人把多例也算作一个独立的模式。 只要你调用valueOf来构建Boolean,那jvm里就永远不会有超过2个Boolean的实例。这也是单例的一个思想出发点。

2.Adapter

从设计思路上出发,Boolean就是对基本数据类型boolean的封装,典型的Adapter的思想

从具体的实现功能出发,Boolean实现了Comparable <Boolean > 接口,而Comparable  接口主要是为了用于集合中的对象排序,也就是说如果Boolean对象实例如果要进行比较的话,必然要实现这个接口,也就是说,如果现有排序算法,我新创建的类,如果用使用已有的排序算法,那我就得对我的类做适配,实现排序算法要求的接口。

3.Factory

Boolean里有这个方法

 

valueOf(boolean b)
 // Returns a Boolean instance representing the specified boolean value.
valueOf(String s)
  // Returns a Boolean with a value represented by the specified String.

 

Boolean.valueOf() 是典型的Factory 的应用了。

 

4.immutable

这个可以认为是常说的23种模式之外的,但是看到final这个关键字,可以知道这个Boolean的实例永远不会变化了,所以这个也算是用到的一种模式

 

5.Builder

Builder和factory都是为了创建对象的过程和对象组件之间的解耦,中间的界限也比较模糊。

同时Boolean有这个方法

 

parseBoolean(String s)
        //  Parses the string argument as a boolean.
 

parse本身的动作是为了将一个对象转变为另外一个对象,属于注重创建的过程,所以builder模式也可以放在这里

 

 

 

从一个简单的类里都可以找到这么多的设计思想,可见OO的思想确实还是无处不在的。

设计模式充斥在JDK的各个角落,锻炼自己识别设计模式的能力才能增强自己设计掌握设计模式的能力,看来确实需要多看看jdk  的API了

 

3
0
分享到:
评论
1 楼 天机老人 2009-03-04  
不错,虽然略浅了点,但是起码有很多的都不记得了起码算上来,复习复习吧!

相关推荐

    经典的java例题,常用

    4. **集合框架**:Java集合框架包括ArrayList、LinkedList、HashMap等,是存储和操作数据的重要工具。例题可能涵盖如何创建和操作这些集合,以及如何使用泛型和迭代器。 5. **IO流**:Java的IO流用于读写文件和网络...

    Java综合技能知识库

    包含 Java面向对象、Java基础类库、JDBC数据库访问、Web编程Jsp&Servlet、Hibernate持久层、iBatis持久层、Structs界面控制层、JSF界面控制层、Spring应用框架、Ejb、WebService技术、J2EE模式等其他Java相关开发...

    J2EE学习以及Linux组件学习的日常总结,适合想了解和温习基础知识的童鞋。目前计划包含的内容有设计模式、Spri.zip

    在IT领域,J2EE(Java 2 Platform, Enterprise Edition)和Linux是两个重要的组成部分,对于任何想要深入理解企业级应用开发和系统管理的人来说,掌握它们的基础知识是至关重要的。这个压缩包文件“J2EE学习以及...

    java后端1年经验和技术总结

    通过上述总结,我们可以看出,作为一名Java后端开发者,不仅要掌握语言的基本语法,还要具备扎实的基础知识,善于利用设计模式和最佳实践来提高代码质量,同时关注性能优化和系统稳定性。随着经验的增长,不断反思和...

    JAVA编程百例 很经典实用

    本资源名为“JAVA编程百例”,显然是一个包含了100个经典且实用的Java编程示例的集合,旨在帮助初学者快速掌握Java编程基础,同时也可作为经验丰富的开发者温习或查找特定功能实现的参考。 这个百例集合可能涵盖了...

    计算机网络专业毕业实习报告3000字.docx

    计算机网络专业毕业实习报告3000字全文共6页,当前为第1页。计算机网络专业毕业实习报告...JAVA和以前学过的C语言计算机网络专业毕业实习报告3000字全文共6页,当前为第4页。计算机网络专业毕业实习报告3000字全文共

    springmybatis

    mybatis实战教程mybatis in action之四实现关联数据的查询 mybatis实战教程mybatis in action之五与spring3集成附源码 mybatis实战教程mybatis in action之六与Spring MVC 的集成 mybatis实战教程mybatis in action...

    2007年上半年 程序员 上午试卷 及 答案

    1. **编程语言基础**:如C/C++/Java/Python等主流语言的语法特性,包括变量、数据类型、控制结构、函数等。 2. **数据结构**:如数组、链表、栈、队列、树、图的基本概念和操作,以及它们在实际编程中的应用。 3. **...

    leetcode题库-LeetCode:LeetCode题库刷题代码

    4. **设计模式**:部分题目涉及到设计模式的应用,如工厂模式、单例模式、装饰器模式等,这有助于培养良好的编程习惯和代码复用能力。 5. **问题分析与调试**:解LeetCode题目需要分析题目要求,设计合适的解决方案...

    android_connerstone_project:用于Android的connerstone项目,主要用于练习android技巧和我所知道但尚未使用的知识

    这个项目是专门为Android开发者设计的,旨在提供一个平台,让他们可以实践Android编程技巧,并温习那些已经学习过但尚未实际运用的知识点。本文将深入探讨这个项目中的核心概念和技术,以期帮助读者全面理解并掌握...

Global site tag (gtag.js) - Google Analytics