时间:2024-10-05 来源:网络 人气:
基于您提供的参考信息,以下是一个关于设计日志系统的方案,包括设计原则、设计模式以及实现步骤:
```java
public interface Logger {
void log(String message);
```java
public class FileLogger implements Logger {
public void log(String message) {
// 将日志信息写入文件
}
public class DatabaseLogger implements Logger {
public void log(String message) {
// 将日志信息写入数据库
}
```java
public interface FormatAdapter {
String format(String message);
public class JsonFormatAdapter implements FormatAdapter {
public String format(String message) {
// 将日志信息转换为JSON格式
}
public class XmlFormatAdapter implements FormatAdapter {
public String format(String message) {
// 将日志信息转换为XML格式
}
```java
public class SingletonLogger {
private static SingletonLogger instance;
private Logger logger;
private FormatAdapter formatAdapter;
private SingletonLogger(Logger logger, FormatAdapter formatAdapter) {
this.logger = logger;
this.formatAdapter = formatAdapter;
}
public static SingletonLogger getInstance(Logger logger, FormatAdapter formatAdapter) {
if (instance == null) {
instance = new SingletonLogger(logger, formatAdapter);
}
return instance;
}
public void log(String message) {
String formattedMessage = formatAdapter.format(message);
logger.log(formattedMessage);
}
```java
public class Main {
public static void main(String[] args) {
Logger logger = new FileLogger();
FormatAdapter formatAdapter = new JsonFormatAdapter();
SingletonLogger singletonLogger = SingletonLogger.getInstance(logger, formatAdapter);
singletonLogger.log(