Allora entro un pò di + nel dettaglio delle classi:
codice:
class A
{
public A()
{
//costruttore
}
public metodo1A(){}
public metodo2A(){}
....
public metodoNA(){}
}
class B
{
public B()
{
//costruttore
}
public metodo1B(){}
public metodo2B(){}
....
public metodoNB(){}
}
class C
{
public C()
{
//costruttore
}
public metodo1C(){}
public metodo2C(){}
....
public metodoNC(){}
}
class MainABC
{
public static void main(String[]a)
{
A oggettoA = new A();
B oggettoB = new B();
C oggettoC = new C();
int dim = 5;
for(int i=0; i<dim; i++)
{
oggettoA.metodo1A();
oggettoB.metodo1B();
oggettoC.metodo1C();
}
//altri calcoli
for(int i=0; i<dim; i++)
{
oggettoA.metodo2A();
oggettoB.metodo2B();
oggettoC.metodo2C();
}
//altri calcoli
.....
for(int i=0; i<dim; i++)
{
oggettoA.metodoNA();
oggettoB.metodoNB();
oggettoC.metodoNC();
}
//risultati
}
}
Diciamo che questa è la situazione attuale; mentre questa è la situazione che prevedo:
codice:
class Global
{
public Global()
{
//costruttore
}
public metodo1(char tipo)
{ //codice uguale per le tre classi
//ora differenzio il codice per le 20 righe differenti
if(tipo=='A'){}
else if(tipo=='B'){}
else if(tipo=='C'){}
}
public metodo2(char tipo)
{ //codice uguale per le tre classi
//ora differenzio il codice per le 20 righe differenti
if(tipo=='A'){}
else if(tipo=='B'){}
else if(tipo=='C'){}
}
....
public metodoN(char tipo)
{ //codice uguale per le tre classi
//ora differenzio il codice per le 20 righe differenti
if(tipo=='A'){}
else if(tipo=='B'){}
else if(tipo=='C'){}
}
}
class MainGlobal
{
public static void main(String[]a)
{
Global g = new Global();
int dim = 5;
for(int i=0; i<dim; i++)
{
g.metodo1('A');
g.metodo1('B');
g.metodo1('C');
}
//altri calcoli
for(int i=0; i<dim; i++)
{
g.metodo2('A');
g.metodo2('B');
g.metodo2('C');
}
//altri calcoli
....
for(int i=0; i<dim; i++)
{
g.metodoN('A');
g.metodoN('B');
g.metodoN('C');
}
//risultati
}
Quale dei due codici ha un'esecuzione + veloce?