Last active
July 10, 2017 22:06
-
-
Save filpgame/1913a9ef31a8685d1701dc587648e4a8 to your computer and use it in GitHub Desktop.
Delegations no Kotlin (Medium)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
interface Loggable { | |
public void log(String message); | |
} | |
class ConsoleLogger implements Loggable { | |
@Override | |
public void log(String message) { | |
System.out.println("Message"); | |
} | |
} | |
class ToastLogger implements Loggable { | |
Context context; | |
public ToastLogger(Context context) { | |
this.context = context; | |
} | |
@Override | |
public void log(String message) { | |
Utils.showToast(context, message); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Worker implements Loggable { | |
public Loggable logger; | |
public Worker(Loggable logger) { | |
this.logger = logger; | |
} | |
@Override | |
public void log(String message) { | |
logger.log(message); | |
} | |
public void doWork() { | |
log("Working"); | |
//.. | |
log("Work done"); | |
} | |
} | |
Worker worker = new Worker(new ConsoleLogger()); | |
worker.logger = new ToastLogger(getContext()); | |
worker.doWork(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment