Skip to content

Instantly share code, notes, and snippets.

@bgeihsgt
Created April 14, 2015 07:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bgeihsgt/ce41282a5cb57c6c8577 to your computer and use it in GitHub Desktop.
Save bgeihsgt/ce41282a5cb57c6c8577 to your computer and use it in GitHub Desktop.
public class UserSignup
{
private IEmailValidator emailValidator;
public UserSignup(IEmailValidator emailValidator)
{
this.emailValidator = emailValidator;
}
public void Signup(string emailAddress, string password)
{
emailValidator.Validate(emailAddress);
// Do your signup magics
}
}
public interface IEmailValidator
{
void Validate(string emailAddress);
}
public class EmailValidator : IEmailValidator
{
public void Validate(string emailAddress)
{
if (!IsValid(emailAddress))
throw new InvalidEmailAddressException(emailAddress);
}
private static bool IsValid(string emailAddress)
{
// do your fancy string magics
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment