Ho creato un programma utilizzando Java che è un'implementazione di questo progetto: link . In sostanza, si crea un'espressione matematica e, utilizzando la coordinata di pixel come input, si crea un'immagine. Dopo averlo implementato inizialmente in serie, l'ho poi implementato in parallelo a causa del fatto che se la dimensione dell'immagine è troppo grande o se l'espressione matematica è troppo complessa (specialmente considerando il fatto che ho fatto l'espressione in modo ricorsivo), richiede un davvero molto tempo. Durante questo processo, mi sono reso conto che avevo bisogno di due classi che implementassero l'interfaccia Runnable
perché dovevo inserire parametri per il metodo run
, che non ti è permesso fare direttamente. Una di queste classi ha finito per essere una classe interna statica di medie dimensioni (non abbastanza grande da rendere comunque un file di classe indipendente). L'altro però, solo bisogno di alcuni parametri per determinare alcuni indici e la dimensione del ciclo for che stavo facendo correre in parallelo - eccolo qui:
class DataConversionRunnable implements Runnable
{
int jj, kk, w;
DataConversionRunnable(int column, int matrix, int wid)
{
jj = column;
kk = matrix;
w = wid;
}
public void run()
{
for(int i = 0; i < w; i++)
colorvals[kk][jj][i] = (int) ((raw[kk][jj][i] + 1.0) * 255 / 2.0);
increaseCounter();
}
}
La mia domanda è: dovrei renderla una classe interiore statica o posso semplicemente crearla in un metodo? Qual è la convenzione generale di programmazione seguita in questo caso?