Сборщик параметров (Collecting Parameter)


Старший брат посыльного - это сборщик параметров ( 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 ) ;
  
}
}
// /:~

 

Сборщик параметров должен иметь способы добавления или вставки значений. Обратите внимание, что по определению посыльный может быть использован в качестве сборщика параметров. Ключевой момент заключается в том, что сборщик параметров передается в методы и изменяется тем же методом, в который он передается.