Traits in Java 8
| interface Logger { | |
| default void log(String message ) { | |
| _logger().info( message ); | |
| } | |
| Logger _logger(); | |
| } | |
| class InfoLogger implements Logger | |
| Logger log = LoggerFactory.getLogger(InfoLogger.class); | |
| @Override | |
| Logger _logger() { | |
| return log; | |
| } | |
| } | |
| class DebugLogger implements Logger { | |
| Logger log = LoggerFactory.getLogger(DebugLogger.class); | |
| @Override | |
| Logger _logger() { | |
| return log; | |
| } | |
| } | |
| class Logged { // logged will work with any of the above implementations | |
| void logHelloWorldWithSimpleLogger( Logger logger ) { | |
| logger.log("Hello, World"); | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment