【发布时间】:2012-01-08 22:16:34
【问题描述】:
为了减少重复,我将应用的工作区拆分为 3 个项目:
- Main(一个库项目,所有常用代码都存放在其中)
- 免费(制作免费版)
- 付费(制作付费版)
免费版和付费版的行为有时会有所不同。如何从库项目中“调用”最终项目?
这里有一些示例伪代码来说明我的问题:
在主项目中:
private void makeADecision() {
if (AppCode.isPaid()) {
// do one thing
} else {
// do something else
}
}
在免费项目中:
public class AppCode {
public static bool isPaid() {
return false;
}
}
在付费项目中:
public class AppCode {
public static bool isPaid() {
return true;
}
}
这基本上是我尝试过的,但它不会编译,因为 Main 项目不知道 AppCode 类。
请记住,这只是一个示例,因此请不要关注应用如何判断它是否为付费版本。 :) 到目前为止,我发现的最佳解决方案是将字符串放入所有三个项目的资源中,然后根据其价值做出决定,但我不喜欢这种方法。除了丑陋之外,我更愿意将功能保留在它所属的地方。这样我就可以完全防止“仅付费”功能被编译到免费版本中,并且可以避免在付费版本中包含任何“仅免费”代码。
【问题讨论】:
标签: android