Старший брат посыльного - это сборщик параметров ( collecting parameter ), чья работа состоит в сборе информации из методов, в которые он передается. Обычно, такой подход используется, когда сборщик параметров передается в несколько методов, как пчела, собирающая пыльцу.
Для сборщика параметров особенно полезен контейнер, так как он позволяет добавлять объекты:
//: упрощение:CollectingParameterDemo.java
package
simplifying;
import
java.util.*;
import
junit.framework.*;
class
CollectingParameter
extends
ArrayList
{
}
class
Filler
{
public
void
f
(
CollectingParameter cp
) {
cp.add
(
"accumulating"
)
;
}
public
void
g
(
CollectingParameter cp
) {
cp.add
(
"items"
)
;
}
public
void
h
(
CollectingParameter cp
) {
cp.add
(
"as we go"
)
;
}
}
public class
CollectingParameterDemo
extends
TestCase
{
public
void
test
() {
Filler filler =
new
Filler
()
;
CollectingParameter cp =
new
CollectingParameter
()
;
filler.f
(
cp
)
;
filler.g
(
cp
)
;
filler.h
(
cp
)
;
String result =
""
+ cp;
System.out.println
(
cp
)
;
assertEquals
(
result,
"[accumulating, items, as we go]"
)
;
}
public static
void
main
(
String
[]
args
) {
junit.textui.TestRunner.run
(
CollectingParameterDemo.
class
)
;
}
}
// /:~
Сборщик параметров должен иметь способы добавления или вставки
значений. Обратите внимание, что по определению посыльный может быть использован
в качестве сборщика параметров. Ключевой момент заключается в том, что сборщик
параметров передается в методы и изменяется тем же методом, в который он передается.
← | Посыльный (Messenger) | Количество объектов | → |