Sono perplesso su come modellare questa situazione.
Supponiamo che tu abbia un algoritmo che opera in un ciclo. Ad ogni ciclo, deve essere eseguita una procedura P
, il cui ruolo è modificare un dato di input I
in un dato di output O
, tale che O = P(I)
.
In realtà, ci sono diversi sapori di P
, ad esempio P1
, P2
, P3
e così via. La scelta di quale P
eseguire è dipendente dall'utente, ma tutti P
hanno la stessa finalità, producono O
da I
.
Questo chiamato bene per una classe base PBase
con un metodo PBase::apply
, con reimplementazioni specifiche di P1::apply(I)
, P2::apply(I)
e P3::apply(I)
. La classe P
effettiva viene istanziata in un metodo factory e il ciclo rimane semplice.
Ora, ho un caso di P4
che segue lo stesso principio, ma questa volta ha bisogno di dati aggiuntivi dal ciclo (come l'iterazione corrente e il valore medio di O
durante le precedenti iterazioni).
Come cambieresti per questo caso?