Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class ValidateEmailSimple {
- isValid(email) {
- return email.indexOf("@") > 2;
- }
- }
- class ValidateEmailAdvanced {
- isValid(email) {
- var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
- return re.test(String(email).toLowerCase());
- }
- }
- class Client {
- constructor({ name, email, address, ValidateEmailService }) {
- this._emailValidationService = ValidateEmailService;
- this.setName(name);
- this.setEmail(email);
- this.setAddress(address);
- }
- setName(name) {
- this.name = name;
- }
- setEmail(email) {
- if (this._emailValidationService.isValid(email)) {
- this.email = email;
- }
- }
- setAddress(address) {
- this.address = address;
- }
- }
- class ClientFacade {
- constructor({ name, email, address }) {
- const ClientInstance = new Client({
- name,
- email,
- address,
- ValidateEmailService: new ValidateEmailSimple(),
- });
- return ClientInstance;
- }
- }
- const run = () => {
- const ClientInstance = new ClientFacade({
- name: "Some client name",
- email: "email@email.com",
- address: "addresss",
- });
- console.log(ClientInstance);
- };
- run();
Add Comment
Please, Sign In to add comment