我的问题很简单,标题很完美:你如何命名界面的“参考”或“基本”实现?我看到了一些命名约定:
你用什么?优缺点都有什么?你在哪里放置那些“参考”实现?目前我创建了一个实现的.impl包。可能包含多个类的更复杂的实现进入.impl.complex包,其中“complex”是描述实现的简短名称。
谢谢你, 马拉克斯
答案 0 :(得分:2)
我想知道你的问题是否反映了特定语言的习俗。我用C#编写,我通常没有“默认”实现。我有一个接口,比如IDistance,每个实现都有一个名称来描述它的实际目的/它是如何具体的,例如,EuclidianDistance,ManhattanDistance ......在我看来,“default”不是实现本身的属性,而是其上下文:应用程序可以有一个名为“GetDefaultDistance”的服务/方法,它将被配置为返回一个距离实现。
答案 1 :(得分:1)
在Java中,(,无论何时合适)我通常使用一个名为RefImpl的嵌套类。这种方式对于给定的接口InterfaceXYZ
,参考实现始终为InterfaceXYZ.RefImpl
,并且无需在编制有效冗余名称时摸索。
public interface InterfaceXYZ {
// interface methods ...
public static class RefImpl implements InterfaceXYZ {
// interface method impls.
}
}
然后有一个统一的使用模式:
// some where else
public void foo () {
InterfaceXYZ anXYZ = new InterfaceXYZ.RefImpl();
...
}
答案 2 :(得分:0)
I asked a previous question关于“null”实现,它被识别为空对象模式 - 一个没有任何意义的接口的实现。和Mathias一样,我不太确定什么是“默认”实现,它没有特定于其实现的某种名称。
答案 3 :(得分:0)
如果界面是RazmaFrazzer,我会将实现称为DefaultRazmaFrazzer。
如果您已经有多个实现,并且已经将其中一个标记为“默认”,请查看所有实现,查看它们之间的差异,并提出描述区分的形容词功能的默认实现,例如SimpleRazmaFrazzer,或者如果它是一个转换器,你可能有PassThroughDefaultRazmaFrazzer - 所以你正在寻找任何使实现与众不同的东西。
答案 4 :(得分:0)
确切的约定并不重要 - 无论是IService
+ Service
还是Service
+ ServiceImpl
。关键是在整个项目中保持一致。