Ho due classi che condividono molto codice e sono concettualmente variazioni su una classe comune. Quindi voglio una classe astratta che contenga tutto il loro codice comune e quindi possono ereditarla e riempire le cose uniche per loro. Tuttavia sto incontrando un problema con costanti e metodi statici. Fondamentalmente, la relazione che ho è così:
Sia la Classe A che la Classe B hanno alcuni metodi che non dipendono da un'istanza della classe, ma solo il valore di un insieme di stringhe costanti. Sostanzialmente come tale:
const string onePrefix;
const string differentPrefix;
static string ConvertMethod(string input)
{
input.replace(onePrefix, differentPrefix);
}
Il codice del metodo è lo stesso tra le due classi, quindi mi piacerebbe averlo nella classe astratta. Ma i valori effettivi delle due costanti sono diversi tra le due classi. Ma le costanti astratte non sono una cosa che puoi fare per quanto posso dire, quindi non sono sicuro di come strutturare le mie classi per fare in modo che funzioni come vorrei. Ho considerato di non avere i valori come costanti, ma sono usati nei miei costruttori prima che venga creato un oggetto istanziato.