我有这个场景与我。会有项目构建的两种口味,如何使用Interface或Abstaract类隐藏实现类
- 普通身材
- 开发人员版本。
在开发人员构建的情况下,我将需要编译更少的包并将它们包含在构建结构中。
有一个在此情况下常见的文件MainClass
,
Mainclass {
if(devFeature){
CommonInterface int = new DeveloperFile();
........ other logic ......
}else{
CommonInterface int = new NormalFile();
........ other logic ......
}
}
如上MainClass
是一个公共资源的罐子保持DeveloperFile
仅在开发建立被引用。 但在正常构建期间,这会导致编译错误。
我该如何解决这个问题?任何具体的设计模式?
因此,你建议有两个不同的类共享相同的名称? EWWW。那么为什么要打扰工厂,而不是使用两个同名的'CommonInterface'实现? –
“Ewww”?大声笑。不完全是一个精辟的批评,但让你的观点。 –
但是,当然,为什么不呢?你可以肯定有两个不同的具有相同名称的实现。当为JNI代码提供平台特定的实现时,这是相当普遍的。 –