Oop 你如何命名你的;参考资料;接口的实现?

Oop 你如何命名你的;参考资料;接口的实现?,oop,interface,Oop,Interface,我的问题相当简单,标题完美地说明了这一点:如何命名接口的“引用”或“基本”实现?我看到了一些命名约定: FooBarImpl DefaultFooBar 基本食物 你用什么?利与弊是什么?您将这些“参考”实现放在哪里?目前,我在实现的地方创建了一个.impl包。可能包含多个类的更复杂的实现进入.impl.complex包,其中“complex”是描述实现的简称 谢谢,, 马拉克斯语我想知道你的问题是否反映了某种语言的风俗习惯。我用C#编写,通常没有“默认”实现。我有一个接口,比如说IDist

我的问题相当简单,标题完美地说明了这一点:如何命名接口的“引用”或“基本”实现?我看到了一些命名约定:

  • FooBarImpl
  • DefaultFooBar
  • 基本食物
你用什么?利与弊是什么?您将这些“参考”实现放在哪里?目前,我在实现的地方创建了一个.impl包。可能包含多个类的更复杂的实现进入.impl.complex包,其中“complex”是描述实现的简称

谢谢,,
马拉克斯语我想知道你的问题是否反映了某种语言的风俗习惯。我用C#编写,通常没有“默认”实现。我有一个接口,比如说IDistance,每个实现都有一个名称来描述它的实际用途/它是如何具体的,比如说,欧几里德距离,曼哈顿距离。。。在我看来,“default”不是实现本身的属性,而是它的上下文的属性:应用程序可以有一个名为“GetDefaultDistance”的服务/方法,该服务/方法将被配置为返回一个距离实现

I讨论了一个“null”实现,它被标识为null对象模式——一个接口的实现,没有任何意义。与Mathias一样,我也不太确定什么是“默认”实现,它没有特定于其实现的某种名称。

如果接口是RazmaFrazzer,我会将该实现称为DefaultRazmaFrazzer

如果您已经有多个实现,并且您已经将其中一个标记为“默认”,请查看所有实现,并查看它们之间的差异,然后想出一个形容词来描述默认实现的显著特征,例如SimpleRazMafRazer,或者如果它是一个转换器,您可能有passthroughDefaultzmafRazzer,因此您正在寻找使实现与众不同的东西。

在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();

    ...
}

无论是
iSeries设备
+
服务
还是
服务
+
服务
+
ServiceImpl
,都不符合确切的约定。重点是在整个项目中保持一致