Skip to content

Instantly share code, notes, and snippets.

@Ugarz
Created February 6, 2018 13:27
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 Ugarz/6147d1985f151850cceee1225949aa87 to your computer and use it in GitHub Desktop.
Save Ugarz/6147d1985f151850cceee1225949aa87 to your computer and use it in GitHub Desktop.
Class Pattern

Simple reminder class with Javascript

Have fun with Class

// Mother Class
class Provider {
    constructor(data) {
        this.provider = data.provider;
        this.maxTry = data.maxTry || 3;
    }
    requestFile(file){
        return console.log(`I'm looking for the ${file.type} ${file.name} with ${this.provider}`)
    }
    getProviderParams(){
        return console.log('Provider parameters: ', this)
    }
}

// Child Class
class Provider2 extends Provider {
    constructor(data) {
        super(data,data);
        this.provider = data.provider;
    }
    sayHi(name){
        return console.log(`Hi ${name} !`)
    }
}

const P = new Provider({ provider: 'google' });
const M = new Provider2({ provider: 'duckduckgo' });

console.log('----------------------')
console.log('Provider 1', P.requestFile({ name: 'Thor', type:'film' }))
console.log('Provider 1', P.getProviderParams())
console.log('----------------------')
console.log('Provider 2', M.requestFile({ name: 'Avatar', type:'serie' }))
console.log('Provider 2', M.getProviderParams())
console.log('Provider 2', M.sayHi('Hodor'))
console.log('----------------------')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment