Sto scrivendo una libreria di convalida del codice postale, in modo da poter chiamare un metodo di supporto
var result = Postcode.IsValid(postcode, country)
A tal fine ho bisogno di avere "classi" che rappresentino i paesi supportati e sappiano come convalidarli. Al momento ho un'interfaccia così:
public interface IPostcode {
bool IsValid(string postcode);
}
e devo avere classi per ogni paese, ad es.
public class USA : IPostcode {
public bool IsValid(string postcode) {
// ... validate here
}
Il metodo di supporto seleziona il IPostcode
relativo in base al codice paese.
Il problema è che sembra sbagliato dover istanziare classi prive di stato o proprietà, solo metodi che sarebbero di gran lunga migliori se fossero static
. Ma ovviamente le classi statiche non possono avere interfacce. C'è un modello migliore per questo?