Skip to content

Instantly share code, notes, and snippets.

@JensRantil
Last active August 29, 2015 14:16
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 JensRantil/acbb3d8fd8b4587f9ea3 to your computer and use it in GitHub Desktop.
Save JensRantil/acbb3d8fd8b4587f9ea3 to your computer and use it in GitHub Desktop.
Log example. Teaching my little brother some programming ;-)
public abstract class AbstractLogger {
public abstract void log(String message);
}
public interface Logger {
void log(String message);
}
public interface UserLogger {
void log(User user, String message);
}
public class FileLogger extends AbstractLogger {
private File file;
public Logger(File file) {
this.file = file;
  }
public void log(String message) {
file.write(message);
}
}
public class PrintLogger implements Logger, UserLogger {
public void log(String message) {
System.out.println(message);
}
public void log(User user, String message) {
// ...
}
public void somethingRararara() {
// ...
}
}
public class MyProgram {
public static void main(String[] args) {
Logger logger = new PrintLogger();
doSomething(logger);
}
private static doSomething(Logger logger) {
logger.log("Hello, you man!");
}
}
@axelrantil
Copy link

Ser bra ut

@JensRantil
Copy link
Author

Tack! 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment