Devo generare un codice che invierà tramite SMS o e-mail per implementare il requisito OTP (One Time Password) del nostro cliente.
Ho appena finito di creare il design usando il modello di strategia,. .
Questaèlaprimavoltacheutilizzounmodellodistrategianeiprogettidivitareale,quindivorreichiedereselostofacendobene.
Diseguitoèriportatouncodicediesempiocheverràutilizzatodalclient.
//OTPGeneratorStrategygeneratorStrategy=newEmailGeneratorStrategy("[email protected]"); for sending to Email for example
OTPGeneratorStrategy generatorStrategy = new SmsGeneratorStrategy(993454454545);
OTPGeneratorContextgeneratorContext = new OTPGeneratorContext(generatorStrategy);
context.generate("1-12345-0");
OTPValidatorStrategy validatorStrategy = new SmsValidatorStrategy();
OTPValidatorContext validatorContext = new OTPValidatorContext (validatorStrategy );
try {
validatorContext.validate("1-12345-0","e7241f");
} catch (InvalidVerificationKeyException ivk) {
System.out.println("Verification key is invalid!");
} catch(VerificationKeyExpiredException vke) {
System.out.println("Verification key is already expired, Please regenerate");
}
Aggiornamento:
Grazie per il feedback, in realtà non ero in grado di aggiornare il mio ultimo design UML e ho già separato la generazione e la convalida.
E il motivo per cui ho usato Exception piuttosto che enumerazioni perché il progetto è stato creato in java 1.4.