记得曾多次看到过一句话:java的每个方法应尽量的简短,甚至最好不要超过十行!
一直没用理解它的妙处!今天看源代码才终于领悟到了一点点!本来计划是想看看工厂模式的实现,但是种瓜得豆,下面是JDK的AudioSystem的源代码getMixerInfo()方法部分:
public static Mixer.Info[] getMixerInfo() {
List infos = getMixerInfoList();
Mixer.Info[] allInfos = (Mixer.Info[]) infos.toArray(new Mixer.Info[infos.size()]);
return allInfos;
}
*/
private static List getMixerInfoList() {
List providers = getMixerProviders();
return getMixerInfoList(providers);
}
private static List getMixerInfoList(List providers) {
List infos = new ArrayList();
Mixer.Info[] someInfos; // per-mixer
Mixer.Info[] allInfos; // for all mixers
for(int i = 0; i < providers.size(); i++ ) {
someInfos = (Mixer.Info[])
((MixerProvider)providers.get(i)).getMixerInfo();
for (int j = 0; j < someInfos.length; j++) {
infos.add(someInfos[j]);
}
}
return infos;
}
看看三个方法依次调用,前面两个方法简短的只有两条语句!
仔细品读,就会感到,用现在最流行的话就是三层结构.
使得问题保持在同一层次,有以下几个好处:一:代码结构清晰,同层次的问题是清晰并且容易理解.迅速理解代码是优秀代码的之一
二:同一层次的代码是复用的基础,
1000copy 写道
代码的价值不在本身大小和复杂度,而在于多少其他代码在用它。
三,同一层次的代码是抽象的基础,只把必要的细节暴露给客户是有巨大的好处,看下面两个代码
private static List getMixerProviders() {
return getProviders(MixerProvider.class);
}
private static List getProviders(Class providerClass) {
return JDK13Services.getProviders(providerClass);
}
每个方法只有一行,但是它存在的好处是巨大的! 这个我觉得参考http://1000copy.iteye.com/blog/675465一系列文章,体会最好了
废话一下:本来是想看下如何实现工厂模式的,一直未体会到工厂模式的好处,以为new个对象,那简单至极,看了这些代码之后,才知道,工厂真的和现实生活中的工厂一样!
分享到:
相关推荐
资源名称:Java深入解析 透析Java本质的36个话题内容简介:本书分为5 章,分别为“基本概念”,“运算符与表达式”,“String 类”,“方法、构造器与变量”,“类与接口”。通过以上方面介绍那些常见、常用却少为人...
11 针对网络通信的不同层次 Java提供的网络功能有四大类:InetAddress URL Socket DatagramSocket ">1 Java程序源代码须先通过 编译器 产生Java虚拟机器的机器码 bytecode 再经过解释器将其转成实际使用的机器和...
java.awt.im.spi 提供启用可以与 Java 运行时环境一起使用的输入方法开发的接口。 java.awt.image 提供创建和修改图像的各种类。 java.awt.image.renderable 提供用于生成与呈现无关的图像的类和接口。 java.awt....
1、Java三大平台: Java ME 、Java SE (JDK)、Java EE 2、平台无关性 Application、Applet程序结构 ,Java程序编译、运行过程 ,Application命令行参数 包的概念 ,常用包(结合后面的内容,了解一些类所在的包) ...
最近正在学习Java,也买了很多的有关Java方面的书籍,其中发现《跟我学Java》这本书,都的很不错啊,所以顺便拿电脑把这本书的目录敲了下来,与大家分享。尤其是那些和我一样初学Java的朋友们,看看哪一节对你有用,...
Java优化编程(第2版)通过丰富、完整、富有代表性的实例,展示了如何提升Java应用性能,并且给出了优化前与优化后的Java应用程序的性能差别,以实际的实例与数字告诉你,为什么不可以这么做,应该怎么做,深入分析...
1 java起源 2 java语言概述 3 简单(基本)数据类型 4 运算符:java有四大类运算符:算数运算、位运算、关系运算和逻辑运算 5 程序控制语句 6 介绍类:类是java的核心和本质 7 深入方法和类:方法重载、参数传递和递归...
本书采用现代面向对象方法,从零开始介绍最有用的类层次结构,全文使用图形和交互式程序,充分激发学生的学习兴趣。本书使用传记简介、引用以及哲学片段来突出计算的历史和理性背景,着重强调算法和问题解决,而今天...
如果读者需要获取关于课后习题的解决方法、编程思路,可以登录站点与笔者及《疯狂Java讲义(附光盘第2版)》庞大的读者群相互交流。 《疯狂Java讲义(附光盘第2版)》为所有打算深入掌握Java编程的读者而编写,适合各种...
11. 继承:继承是一种联结类的层次模型,12. 并且允许和鼓励类的重用,13. 它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,14. 这个过程称为类继承。新类继承了原始类的特性,15. 新类称为...
此外,本书还详细介绍了Java软件开发包(JDK)从版本1.1到版本1.2对类及方法所作的改动。 本书是参考手册而不是指导手册,相信无论是对Java程序员还是学习和使用Java技术的广大读者和用户,本书都将是他获取完整、...
一、Java基础知识 1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入...
还详细说明了Java软件开发包(JDK)1.1到从版本1.2对类及方法所作的修改。需要指出的是:本书是补充版本,有些材料需要参阅《The Java Class Libraries, Second Edition, Volume 1》一书的内容。
源文件命名时,若文件中含有public类,源文件必须与该类名字一致,注意区分大小写。 正确的语句序列: package Transportation;//怎样写包??? import java.awt.Graphics; import java.applet.Applet; 错误的...
和行为应为与变量和方法相对应。自行车的状态:数度是 10mp(每小时 10 米),步度是 90rpm (每分钟 90 转),当前传动装置是第 5 个齿轮。再面向对象的程序设计中,这些数据应放在 变量中。自行车的行为:刹车,...
容器中的接口层次结构 136 Collection接口 137 LIST接口 137 SET接口 138 Map接口 138 Iterator接口 139 遍历集合 140 Collections工具类 141 Comparable接口 141 equals和hashcode方法 143 泛型 144 思考作业 ...
对java方法按包划分,并且列出已经过时的方法等,并且层次结构非常分明
目录 目 录 第1章 基本概念 1 话题1 开门见山——测试...目前更多的开发人员(不乏多年开发经验者),也仅仅停留在Java表面的层次,而本书,将更深入一层地去讨论Java的话题,令读者耳目一新,知其然,更知其所以然。