diff --git a/README.md b/README.md index 521990d..7d27622 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,2 @@ -# AndroidCommonLib +# AndroidComponentLib Android component library diff --git a/app/src/main/java/co/review/androidcommonlib/designmode/abstract_and_interface/FileLogger.java b/app/src/main/java/co/review/androidcommonlib/designmode/abstract_and_interface/FileLogger.java new file mode 100644 index 0000000..a945aa6 --- /dev/null +++ b/app/src/main/java/co/review/androidcommonlib/designmode/abstract_and_interface/FileLogger.java @@ -0,0 +1,35 @@ +package co.review.androidcommonlib.designmode.abstract_and_interface; + +import java.io.FileWriter; +import java.io.IOException; +import java.io.Writer; +import java.util.logging.Level; + +/** + * 创建时间: 2020/01/16 15:33
+ * 作者: qiudengjiao
+ * 描述: 抽象类的子类:输出日志到文件 + */ +public class FileLogger extends Logger { + + private Writer fileWriter; + + public FileLogger(String name, boolean enabled, Level minPermittedLevel, String filepath) + throws IOException { + super(name, enabled, minPermittedLevel); + this.fileWriter = new FileWriter(filepath); + } + + + @Override + protected void doLog(Level level, String message) { + // 格式化level和message,输出到日志文件 + try { + fileWriter.write(""); + } catch (IOException e) { + e.printStackTrace(); + } + } + + +} diff --git a/app/src/main/java/co/review/androidcommonlib/designmode/abstract_and_interface/Logger.java b/app/src/main/java/co/review/androidcommonlib/designmode/abstract_and_interface/Logger.java new file mode 100644 index 0000000..4b22f03 --- /dev/null +++ b/app/src/main/java/co/review/androidcommonlib/designmode/abstract_and_interface/Logger.java @@ -0,0 +1,31 @@ +package co.review.androidcommonlib.designmode.abstract_and_interface; + +import java.util.logging.Level; + +/** + * 创建时间: 2020/01/16 15:07
+ * 作者: qiudengjiao
+ * 描述: 抽象类练习 + */ +public abstract class Logger { + + private String name; + private boolean enabled; + private Level minPermittedLevel; + + public Logger(String name, boolean enabled, Level minPermittedLevel) { + this.name = name; + this.enabled = enabled; + this.minPermittedLevel = minPermittedLevel; + } + + public void log(Level level, String message) { + boolean loggable = enabled && (minPermittedLevel.intValue() <= level.intValue()); + if (!loggable) return; + doLog(level, message); + } + + protected abstract void doLog(Level level, String message); + + +} diff --git a/app/src/main/java/co/review/androidcommonlib/designmode/abstract_and_interface/MessageQueueClient.java b/app/src/main/java/co/review/androidcommonlib/designmode/abstract_and_interface/MessageQueueClient.java new file mode 100644 index 0000000..8cda70d --- /dev/null +++ b/app/src/main/java/co/review/androidcommonlib/designmode/abstract_and_interface/MessageQueueClient.java @@ -0,0 +1,12 @@ +package co.review.androidcommonlib.designmode.abstract_and_interface; + +/** + * 创建时间: 2020/01/16 16:48
+ * 作者: qiudengjiao
+ * 描述: + */ +public class MessageQueueClient { + + public void send(){} + +} diff --git a/app/src/main/java/co/review/androidcommonlib/designmode/abstract_and_interface/MessageQueueLogger.java b/app/src/main/java/co/review/androidcommonlib/designmode/abstract_and_interface/MessageQueueLogger.java new file mode 100644 index 0000000..8e210fe --- /dev/null +++ b/app/src/main/java/co/review/androidcommonlib/designmode/abstract_and_interface/MessageQueueLogger.java @@ -0,0 +1,25 @@ +package co.review.androidcommonlib.designmode.abstract_and_interface; + +import java.util.logging.Level; + +/** + * 创建时间: 2020/01/16 15:38
+ * 作者: qiudengjiao
+ * 描述: 抽象类的子类: 输出日志到消息中间件(比如kafka) + */ +public class MessageQueueLogger extends Logger { + + private MessageQueueClient msgQueueClient; + + public MessageQueueLogger(String name, boolean enabled, Level minPermittedLevel, + MessageQueueClient msgQueueClient) { + super(name, enabled, minPermittedLevel); + this.msgQueueClient = msgQueueClient; + } + + @Override + protected void doLog(Level level, String message) { + // 格式化level和message,输出到消息中间件 + msgQueueClient.send(); + } +}