Prima di tutto ti darò una breve spiegazione di cosa sto facendo dopo. Voglio scrivere un programma che applica i filtri a un'immagine usando un modello di progettazione strategica. Ho letto alcune documentazioni sul pattern e ho deciso di usarlo in questo modo.
Per prima cosa creerò un'interfaccia chiamata FilterStrategy che ha un metodo chiamato applyFilter.
Dopodiché creo 2 classi diverse, chiamiamole BeautifulFilter e UglyFilter che implementano l'interfaccia sopra.
Quindi scriverò una classe di contesto che ha un membro privato di FilterStrategy e un metodo setter per due diverse strategie. E infine un altro metodo in cui io chiamo applyFilter
In main my function ho creato FilterStrategy e ho impostato il filtro per UglyFilter e chiamato la funzione.
Ecco cosa sto chiedendo. BeautifulFilter e UglyFilter hanno molti metodi comuni come l'immagine di lettura, l'immagine di scrittura, la convoluzione e la visualizzazione ... e anche alcuni metodi utilizzati da uno solo dei filtri sopra. Dove dovrei implementare questi metodi? Devo duplicare il mio codice in entrambe le classi filtro?