`
fansfirst2008
  • 浏览: 98670 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java的方法 与 层次

阅读更多

  记得曾多次看到过一句话: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层次分析法(Analytic Hierarchy Process,AHP)是一种基于多准则决策分析的方法,它通过将复杂问题分解为多个相互关联的子问题,并通过比较和综合这些子问题的相对重要性来解决整个问题。在Java编程环境中实现...

    java IO 类层次图

    ### Java IO 类层次结构解析 #### 一、概述 Java IO(Input/Output)系统是Java平台中的一个重要组成部分,用于处理程序与外部设备之间的数据交换。Java IO系统提供了丰富的类来支持不同类型的输入输出操作,包括...

    Java集合类层次结构

    Java集合类层次结构是Java编程语言中用于存储和管理对象的核心框架。这个层次结构由多个接口和类组成,为开发者提供了灵活且强大的数据结构选择。理解这个层次结构对于编写高效、可维护的Java代码至关重要。 在Java...

    层次聚类算法的java实现

    在这个Java实现中,通常会使用凝聚型层次聚类,因为它是处理大规模数据集时更为常见和有效的方法。 层次聚类的关键步骤包括计算距离矩阵、选择合并策略和构建树状结构。在Java中,可以使用`java.util.List`或者...

    层次聚类(java未优化版)

    在IT领域,层次聚类是一种常见的无监督学习方法,用于将数据组织成具有层次结构的树形结构,也称为 dendrogram。在这个特定的项目中,我们看到的是一个使用Java实现的未经优化的层次聚类算法。这个算法目前可能存在...

    HCL.rar_Cluster Java Code_层次分析_层次聚类_聚类 java

    虽然标题提到了“层次分析”,但在描述中并未明确提及它与聚类的关系。如果这里的“层次分析”是指在聚类过程中的权重分配或比较,那么可能是为了在聚类过程中考虑各个特征的重要性。 2. **Java代码实现**:Java是...

    层次分析法-使用JAVA开发的基于粒子群的层次分析法算法.zip

    层次分析法(Analytic Hierarchy Process,AHP)是一种实用的多准则决策分析方法,由美国运筹学家Thomas L. Saaty在20世纪70年代提出。它将复杂问题分解为相互关联的多个层次,通过比较判断矩阵来确定各因素的相对...

    基于JavaParser的代码调用链分析,可以用于分析Java代码的方法调用链.zip

    这个压缩包中的内容可能包含了一系列使用JavaParser进行代码分析的示例或工具,特别是关于方法调用链的分析。这种方法调用链分析在软件工程中具有重要的应用价值,比如代码审查、性能优化、依赖关系理解以及重构等。...

    AHP.zip_AHP java code_ahp_ahp java_ahp层次分析java_层次分析法

    它适用于处理复杂、多层次的问题,通过将问题分解为多个相互关联的层次和元素,然后进行定量与定性的比较分析,最终得出决策权重,帮助决策者做出合理选择。在IT行业中,尤其是在软件工程和系统分析中,AHP常被用来...

    Java实现二叉树的层次遍历

    为了测试层次遍历,我们可以在`BinaryTree`类中添加一个构建二叉树的示例方法,并调用层次遍历方法: ```java public static void main(String[] args) { BinaryTree tree = new BinaryTree(); tree.root = new ...

    层次分析法源代码

    层次分析法(Analytic Hierarchy Process,简称AHP),是一种多准则决策分析方法,由美国运筹学家萨蒂(T.L.Saaty)提出。它通过将复杂问题分解为多个层次和子目标,然后对各因素进行两两比较,构造判断矩阵,并通过...

    java构造方法

    ### Java构造方法详解 #### 一、构造方法基础概念 构造方法是Java中一种特殊的方法,主要用于初始化新创建的对象。每个类至少有一个构造方法。如果程序员没有显式地定义构造方法,Java编译器会自动为类添加一个无...

    java源程序代码(包含java个层次知识)

    这个名为"java源程序代码(包含java个层次知识)"的压缩包文件提供了丰富的学习资源,帮助初学者从零开始掌握Java编程。让我们深入探讨一下这个压缩包中可能包含的Java学习内容。 首先,"java+demo"这样的文件名...

    JAVA实验报告三java输入输出.docx

    本实验主要涵盖了Java中输入输出的基本操作,旨在让学生深入理解数据流的概念,熟悉Java流的层次结构,并掌握文件的读写操作。实验内容包括从键盘接收用户输入并在屏幕上显示,读取并显示指定文本文件的内容,以及...

    java-数组与方法及面向对象基础

    2. **继承**:子类继承父类的属性和方法,允许创建更复杂的类层次结构。使用`extends`关键字实现继承,如`class Son extends Father`。 3. **多态**:同一方法在不同对象上有不同的行为,这在Java中通过接口和抽象...

    Verilog高层次综合Java源码

    在这个场景中,"Verilog高层次综合Java源码"提供了一个基于Java的工具,用于将C语言的行为描述转化为Verilog的一段式状态机。这个工具可能包含了力导向算法,这是一种优化布局和布线的方法,以改善逻辑综合后的电路...

    java 项目模型 按层次结构划分

    在Java开发中,项目模型的层次结构划分是至关重要的,它直接影响到代码的可读性、可维护性和团队协作效率。本项目模型按照层次结构进行组织,旨在使程序设计更加坚固,便于理解和修改,从而降低维护成本。下面将详细...

    java基础与进阶资料

    总的来说,这份“Java基础与进阶资料”应该是一份全面的教程,覆盖了从Java语言的基本概念到高级特性的方方面面,适合不同层次的开发者进行学习和查阅。通过系统的阅读和实践,开发者可以逐步提升自己的Java技能,...

    深入Java异常世界:探索Java异常类层次结构

    它是一种面向对象的语言,意味着它将现实世界中的事物抽象为对象,这些对象具有属性(数据)和方法(行为)。Java语言设计目标包括跨平台性、网络编程能力、健壮性、安全性和简单性。 ### Java的主要特点: 1. **...

    java深度历险 详细讲解了java的package机制等

    总之,`package`和`import`机制为Java程序提供了良好的结构和可维护性,Visual Studio .NET提供了与JVM交互的便捷方式,而Java 2 SDK则为开发者提供了丰富的工具和资源。深入理解这些概念和工具,对于任何Java开发者...

Global site tag (gtag.js) - Google Analytics