java.lang.Object
provided.listFW.visitors.ProdAlgo
- All Implemented Interfaces:
IListAlgo
Algo to calculate the product of all the elements in a list of integers. The input parameter is not used.
- Author:
- swong
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
ProdAlgo
public ProdAlgo()
-
-
Method Details
-
emptyCase
Description copied from interface:IListAlgoOperates onMTList, the empty list. SinceIEmptyListhas only one method,execute(), there is not much the host list can do here. So the code for the empty case usually involves:inp, and perhapshost.execute(..., ...).
-
nonEmptyCase
Description copied from interface:IListAlgoOperates onNEList, a non-empty list. The host list now has a first and a rest. So the code here usually involves whathost.getFirst()andhost.getRest()can do to accomplish the task at hand.host.getFirst()is simply a dataObjectthat the host list holds. It is problem-specific, and thus what it can do depends on the problem the current algorithm is trying to solve.host.getRest()in contrast is anIList! What can anIListdo?executean alogrithmIListAlgowith some input. WhatIListAlgocan that be? The current algorithm that is being executed is as good a candidate as any otherIListAlgo. In Java, we use the key wordthisto reference the current receiver of the method call. Having the rest of host (recursively) execute the current algorithm is expressed in Java as:host.getRest().execute(this, ...).
To summarize, the code for the non-empty case usually involves:
host.getFirst(), and the recursive callhost.getRest().execute(this, something involving inp).
- Specified by:
nonEmptyCasein interfaceIListAlgo- Parameters:
host- theNEListthat is executing this algorithmnu- a variable number of input parameters that can be used for any purpose.- Returns:
- result from calling this method. The type of the result is problem-specific and may be null.
-