andbin si, il mio Prof intende proprio la variante del builder pattern. Valia ti assicuro che non ho assolutamente bypassato la teoria...ma lasciamo perdere le polemiche sterili.
Andbin stamattina ho provato a svolgere l'esercizio, nei primi 3 punti e cioé:implementazione della classe SetOfNumbers,immutabilità della classe e implementazione dell'oggetto builder...ecco qui il mio codice
codice:
import java.io.*;
import java.util.*;
import java.math.*;
interface Set071210
{
public BigDecimal getSize();
public BigDecimal getMean();
public BigDecimal[]getSet();
}
class SetOfNumbers implements Set071210
{
private final BigDecimal size;
private final BigDecimal [] set;
private final BigDecimal media;
private final BigDecimal somma;
/**public SetOfNumber(BigDecimal size,BigDecimal [] set)
{
this.size=new BigDecimal(size.toString());
this.set=new BigDecimal(set.toString());
somma=0.0;
for(int i=0;i<set.length-1;i++)
{
somma=somma+set[i];
media=somma.divide(size,UNNECESSARY);
}
}
*/
public static class Builder
{
//parametri richiesti
private final BigDecimal size;
private final BigDecimal [] set;
//parametri opzionali
private final BigDecimal media=0.0;
private final BigDecimal somma=0.0;
public Builder(BigDecimal size, BigDecimal [] set)
{
this.size=new BigDecimal(size.toString());
this.set=new BigDecimal(set.toString());
for(int i=0;i<set.length-1;i++)
{
somma=somma+set[i];
media=somma.divide(size,1);
}
}
public BigDecimal getSize()
{
return size;
}
public BigDecimal getMean()
{
return media;
}
public BigDecimal [] getSet()
{
return set;
}
public SetOfNumbers build()
{
return new SetOfNumbers(this);
}
}
private SetOfNumbers(Builder builder)
{
size=builder.size;
set=builder.set;
media=builder.media;
somma=builder.somma;
}
}