原文地址
http://www.c2.com/cgi/wiki?VarargsCollectionFactoryMethod
批注:比较短的一篇,中间使用了泛型,可变参数.需要Java1.5环境
如果DoubleBraceInitialization技巧中介绍的一样,Java在使用Collection上没有简单的语法,相比其他语言,Java创建一个集合需要大量的代码,这个技巧介绍的就是使用factory Methods去创建一个可变参数的集合获取方式.
原有Java代码模式
Set<String> fruit = new HashSet<String>();
fruit.add("banana");
fruit.add("pear");
fruit.add("apple");
doSomethingWith(fruit);
你可以写一个factory 方法进行代替
<T> Set<T> setOf(T... things) {
return new HashSet<T>(Arrays.asList(things));
}
通过传入可变数量的参数,然后返回所需要的Set集合.
进行调用的方式
doSomethingWith(setOf("banana", "pear", "apple"));
另外一种变形的方法:
<T> T populateCollection(Collection<T> c, T... things) {
c.addAll(Arrays.asList(things));
return c;
}
调用方式
populateCollection(new ArrayList<String>(), "Meh", "Mlah", "Hmm");
这个是用的泛型较为复杂.
其他相关的技巧:
OnceAndOnlyOnce
http://www.c2.com/cgi/wiki?OnceAndOnlyOnce
DoubleBraceInitialization
http://www.c2.com/cgi/wiki?DoubleBraceInitialization
个人理解:这种方式在J2ME无法使用,需要在J2EE上合理的使用,灵活的使用了泛型提供的便利,能够节约不少代码,不过真正只使用字符串添加的机会并不多,关键还是数据获取部分的设计,这里只是提供了便利的集合获取方法,如果参数较多,那就不太适合了..
分享到:
相关推荐
今天我们要探讨的是设计模式中的一个经典成员——工厂方法模式(Factory Method Pattern)。工厂方法模式是创建型设计模式的一种,它提供了一种创建对象的最佳方式。 ### 一、什么是工厂方法模式? 工厂方法模式...
1. **只能有一个Varargs参数**:在一个方法中只能声明一个Varargs参数,并且必须位于参数列表的末尾。 2. **Varargs参数的类型**:Varargs参数的类型必须是引用类型或原始类型。不可以使用自定义类或接口作为Varargs...
C语言头文件 VARARGSC语言头文件 VARARGSC语言头文件 VARARGSC语言头文件 VARARGSC语言头文件 VARARGSC语言头文件 VARARGSC语言头文件 VARARGSC语言...VARARGSC语言头文件 VARARGSC语言头文件 VARARGSC语言头文件 VAR
Java Varargs 可变参数是Java 1.5引入的一项特性,它允许我们在方法签名中定义一个可变数量的参数。这种技术使得方法能够接受任意数量的相同类型的参数,而无需为每个参数创建单独的参数位置。在Java中,可变参数...
Java中的可变参数(Varargs)是自Java 5引入的一项特性,它允许函数接受一个或多个同类型的参数。在编程中,有时我们可能需要创建一个方法,该方法可以接收不同数量的相同类型参数,例如打印日志、计算数组元素等。...
本教程将深入探讨如何在重载方法中利用Varargs(可变参数)技术,这是一项非常实用的功能,能够使方法接受任意数量的相同类型参数。此资源包包含了相关的源代码实例和详细教程,帮助你更好地理解和应用这一概念。 ...
"t02FactoryMethod" 指的是工厂方法(Factory Method)设计模式,它是面向对象设计中的一种经典模式。这个模式主要关注于如何创建对象,通过引入一个工厂接口或者抽象类,将对象的创建过程封装起来,使得具体的对象...
编写程序,使用main方法中的args[]命令行参数传入两个操作数,进行除法运算, 要求对NumberFormatException类型的异常进行处理,并且自定义异常类OnlyOneOprandException与NoOprandException,并对之进行处理。
至于标签中的“FactoryMethod 将#”,可能是因为标签被不完整地输入了。通常,“#”用于标记话题或者关键词,这里可能是想表达“工厂方法模式”的话题。在Java中,工厂方法模式通常用于实现“开闭原则”,即软件实体...
工厂方法模式(Factory Method Pattern)是一种常用的面向对象设计模式,属于创建型模式之一。它提供了一种创建对象的最佳方式。在工厂方法模式中,我们定义了一个用于创建对象的接口,但让子类决定实例化哪一个类。...
工厂方法(Factory Method)作为设计模式中的一员,是创建型模式的一种,它提供了一种创建对象的最佳方式。在这个模式中,一个工厂类负责创建对象,而具体的创建过程则由子类来决定,从而实现了对创建过程的抽象。 ...
C标准库源码
工厂方法模式是设计模式中的一种创建型模式,它在面向对象编程中扮演着重要的角色。在C#中,我们可以利用这种模式来抽象产品的创建过程,将具体的实例化操作延迟到子类中进行,从而实现代码的解耦和扩展性。 1. **...
通过这个压缩包中的`factorymethodpattern`文件,你可以更深入地了解如何在实际的Java代码中实现和应用工厂方法模式,包括具体的类定义、方法调用和运行逻辑。通过阅读和学习这段代码,你可以掌握如何在自己的项目中...
### C#集合容器(collection)详解 #### 一、集合的概念与分类 集合是C#语言中用于存储一组数据的一种机制,它可以是不同类型的对象。在.NET框架中,集合通过实现`System.Collections.ICollection`、`System....
- **工厂接口(Factory)**:定义了创建产品的接口,通常只有一个抽象工厂方法。 - **具体工厂(Concrete Factory)**:实现了工厂接口,负责创建具体的产品对象。每个具体工厂对应一个具体产品。 3. **Java中的...
工厂方法模式(Factory Method Pattern)也是一种常用的创建型模式。它的核心思想是在基类中定义一个创建对象的接口,让子类决定实例化哪一个类。这种模式将实例化的工作推迟到子类去完成。 ##### 3.2 实现原理 ...
`Collection`接口是Java集合框架中的核心接口之一,它是所有集合类的根接口,提供了一系列用于操作集合的基本方法。通过这个接口,我们可以执行添加、删除、遍历集合元素等基本操作。 #### 三、Collection接口的...