-
The
Implementor
:
public interface Logger {
void log();
}
-
The
Concrete Implementor
(1):
public class FileLogger implements Logger {
public void log() {
System.out.println("FileLogger-log");
}
}
-
The
Concrete Implementor
(2):
public class ConsoleLogger implements Logger {
public void log() {
System.out.println("ConsoleLogger-log");
}
}
-
The
Abstraction
:
public interface AbstractionLogger {
void log();
}
-
The
Refined Abstraction
(1):
public class AbstractionFileLogger implements AbstractionLogger {
private final Logger logger = new FileLogger();
public void log() {
logger.log();
}
}
-
The
Refined Abstraction
(2):
public class AbstractionConsoleLogger implements AbstractionLogger {
private final Logger logger = new ConsoleLogger();
public void log() {
logger.log();
}
}
-
A simple class to test the
Bridge
design pattern:
public class BridgePatternTest {
public static void main(String[] args) {
// Example 1: File Logger
final AbstractionLogger fileLogger = new AbstractionFileLogger();
fileLogger.log();
// Example 2: Console Logger
final AbstractionLogger consoleLogger = new AbstractionConsoleLogger();
consoleLogger.log();
}
}