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?