package com.example.leetcode.design.adaptor;
public interface CloudLogger {
void sendServer(String msg);
}
package com.example.leetcode.design.adaptor;
public class CloudLoggerAdapter implements Logger {
private CloudLogger cloudLogger;
public CloudLoggerAdapter(CloudLogger cloudLogger) {
this.cloudLogger = cloudLogger;
}
@Override
public void info(String msg) {
cloudLogger.sendServer(msg);
}
}
package com.example.leetcode.design.adaptor;
public interface Logger {
void info(String msg);
}
package com.example.leetcode.design.adaptor;
public class NotificationService {
private Logger logger;
public NotificationService(Logger logger) {
this.logger = logger;
}
public void send(String msg) {
logger.info(msg);
}
}
package com.example.leetcode.design.adaptor;
public class ServerLogger implements CloudLogger {
@Override
public void sendServer(String msg) {
System.out.println("Cloud server info: " + msg);
}
}