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,jdk,生活,Blog,J#)