和经理讨论下了关于模式的学习,也反馈自己的掌握模式的程度。
单单举一个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了
分享到:
相关推荐
4. **集合框架**:Java集合框架包括ArrayList、LinkedList、HashMap等,是存储和操作数据的重要工具。例题可能涵盖如何创建和操作这些集合,以及如何使用泛型和迭代器。 5. **IO流**:Java的IO流用于读写文件和网络...
包含 Java面向对象、Java基础类库、JDBC数据库访问、Web编程Jsp&Servlet、Hibernate持久层、iBatis持久层、Structs界面控制层、JSF界面控制层、Spring应用框架、Ejb、WebService技术、J2EE模式等其他Java相关开发...
在IT领域,J2EE(Java 2 Platform, Enterprise Edition)和Linux是两个重要的组成部分,对于任何想要深入理解企业级应用开发和系统管理的人来说,掌握它们的基础知识是至关重要的。这个压缩包文件“J2EE学习以及...
通过上述总结,我们可以看出,作为一名Java后端开发者,不仅要掌握语言的基本语法,还要具备扎实的基础知识,善于利用设计模式和最佳实践来提高代码质量,同时关注性能优化和系统稳定性。随着经验的增长,不断反思和...
本资源名为“JAVA编程百例”,显然是一个包含了100个经典且实用的Java编程示例的集合,旨在帮助初学者快速掌握Java编程基础,同时也可作为经验丰富的开发者温习或查找特定功能实现的参考。 这个百例集合可能涵盖了...
计算机网络专业毕业实习报告3000字全文共6页,当前为第1页。计算机网络专业毕业实习报告...JAVA和以前学过的C语言计算机网络专业毕业实习报告3000字全文共6页,当前为第4页。计算机网络专业毕业实习报告3000字全文共
mybatis实战教程mybatis in action之四实现关联数据的查询 mybatis实战教程mybatis in action之五与spring3集成附源码 mybatis实战教程mybatis in action之六与Spring MVC 的集成 mybatis实战教程mybatis in action...
1. **编程语言基础**:如C/C++/Java/Python等主流语言的语法特性,包括变量、数据类型、控制结构、函数等。 2. **数据结构**:如数组、链表、栈、队列、树、图的基本概念和操作,以及它们在实际编程中的应用。 3. **...
4. **设计模式**:部分题目涉及到设计模式的应用,如工厂模式、单例模式、装饰器模式等,这有助于培养良好的编程习惯和代码复用能力。 5. **问题分析与调试**:解LeetCode题目需要分析题目要求,设计合适的解决方案...
这个项目是专门为Android开发者设计的,旨在提供一个平台,让他们可以实践Android编程技巧,并温习那些已经学习过但尚未实际运用的知识点。本文将深入探讨这个项目中的核心概念和技术,以期帮助读者全面理解并掌握...