gpt4 book ai didi

java - 如何开发智能手机和 PC 的应用程序

转载 作者:行者123 更新时间:2023-12-02 00:35:25 25 4
gpt4 key购买 nike

我正在为 Android 编写一个应用程序,但我也计划为 PC 构建这个应用程序。所以我想重用尽可能多的代码。但在某些情况下我必须使用特定于平台的功能。例如用于记录输出和加载资源。我正在寻找一个简单的解决方案来抽象这些功能。我当前的解决方案是我已经编写了这个类

public class LoggerAndroid{

public static void debug(String tag, String msg) {
Log.d(tag, msg);
}

public static void error(String tag, String msg) {
Log.e(tag, msg);
}

public static void info(String tag, String msg) {
Log.i(tag, msg);
}

public static void warn(String tag, String msg) {
Log.w(tag, msg);
}

}

还有这个

public class Logger extends LoggerAndroid{

}

在我的代码中我使用类似的表达式

Logger.info("test", "HelloWorld");

为了编写 PC 应用程序,我使用相同的方法编写了另一个日志类,并让 Logger 继承该类。因此需要进行的更改很少,并且使用日志方法仍然很容易。但我认为维护代码是相当严厉的。对此有更好的解决方案吗?

最佳答案

我认为界面会操作得更好。

看一下这段代码:

public interface ILogger {
public void debug(String tag, String msg);

public void error(String tag, String msg);

public void info(String tag, String msg);

public void warn(String tag, String msg);
}

public class AndroidLogger implements ILogger {

@Override
public void debug(String tag, String msg) {
Log.d(tag, msg);
}

@Override
public void error(String tag, String msg) {
Log.e(tag, msg);
}

@Override
public void info(String tag, String msg) {
Log.i(tag, msg);
}

@Override
public void warn(String tag, String msg) {
Log.w(tag, msg);
}

}

然后,您所要做的就是:

ILogger log = new AndroidLogger();

在 Windows 中,那就是:

ILogger log = new WindowsLogger();

这段代码使得它没有任何区别。这就是你问题中的意思吗?

关于java - 如何开发智能手机和 PC 的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7958072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com