由于不同客户的不同需求,不同项目可能存在细微的差别,此时,如果代码可以在不同项目间复用,管理起来就非常方便。 虽然使用配置文件,可以在运行时区分不同项目的需求从而执行不同的功能,但是,这会使得代码本身臃肿,包含了多套逻辑。 在C/C++中,使用条件编译,就是非常通用的解决方案。 不同项目间完全共享同一份代码,只是在编译不同项目时,打开不同的Feature, 模块代码中,针对不同的Feature进行条件编译。但是,在Android上,基于Java开发,没有条件编译的支持, 我就不知道应该采用什么比较好的方式来支持多个项目间的共享代码。 虽然网上看到可以利用java的boolean型的if语句来模拟条件编译, 但那个很有局限性,只能在满足语法的前提下进行,如果,我连import不同的package也需要进行条件控制,那就不行了。各位TX,谁能支持一下~~~~~
我个人觉得可能性不大。
....................
#elif Project_B
..................
#elif Project_C但是,Java不支持条件编译~~~
ProjectInterface.
ProjectCommon.
ProjectA,ProjectB,ProjectC...
再搞个ProjectFactory或Manager...通通搞定
ifdef适合简单的情况,如果你的也比较简单,简单到90%都是common的,那用if加变量也是一样阿,对吧
if(Config.PROJECT == Project_A)
{}else if …………
我要在1.6下不调用ScrollView.setScrollbarFadingEnabled(Boolean enable);而在1.6后的版本中才调用此函数,你们给我用拿if试试?!没有预编译,这种实现想都别想。