缩写impl用于很多库中; 这是什么意思?

wll*_*cnt 20 naming-conventions libraries

我已经看到impl在很多不同的.net和Java库中用作命名空间和类后缀.我只想知道它的含义以及使用它的原因.

Tre*_*eyE 21

它代表实施.

这是一个Java惯例.

通常在java(特别是J2EE)中,您将从某个工厂获取对象,然后使用它.

该对象的类型通常作为接口提供给您,因此您不需要知道实际的类,只需要知道它的方法.

一个IMPL类通常是实现通过这些接口中的一个所描述的行为的一类.

  • 这是一个非常可怕的[命名约定反模式](http://www.vertigrated.com/blog/2011/02/interface-and-class-naming-anti-patterns-java-naming-convention-tautologies/) (9认同)
  • @feelingunwelcome 我不反对 - 这里的主要问题是,如果您想在 java/j2ee 中轻松测试,您通常会以 1:1 的类/接口比率来分解您的依赖项。在这种情况下,命名可能会开始成为一种真正的痛苦。它*确实*避免了“IInterfaceName”问题——它只是将丑陋的东西移到了不同​​的地方。 (2认同)

Bra*_*ace 7

它是"实施"的缩写.通常,当父包包含抽象类,接口以及可能是访问的主要工厂类时,它会被使用,然后impl包包含那些抽象类和接口的各种具体实现.