java - Java 中接口(interface)/类/模拟类的命名约定?

标签 java

我正在为 Lexer 对象创建模拟类,我认为我可能需要进行一些重构。我有两个选择:

  1. 创建一个接口(interface)Lexer,并将当前的Lexer重命名为类似RealLexer的名称。让 MockLexer 实现 Lexer,并且方法调用采用 Lexer 类型的任何内容。我不喜欢我宝贵的 Lexer 类现在被重命名为一些没有意义的东西,如果你不知道有一个模拟类。
  2. 创建一个接口(interface) LexerInterface(我已经不喜欢它了,因为它的名称中有 Interface),但允许我自己保留当前的 ​​Lexer 就是这样。 MockLexer 然后实现 LexerInterface。另一个缺点是方法调用将 LexerInterface 作为参数。

这两种选择对我来说都很糟糕,所以我想我应该让标准为我做决定。有没有人有这方面的经验?

最佳答案

我肯定会投票赞成使用 Lexer 作为您的接口(interface)名称。添加一些关于如何为什么您的实现作为名称的一部分的信息怎么样? 例如:

  • StringParsingLexer
  • TokenizingLexer
  • SingleThreadedLexer
  • {ThirdPartyLibraryName}DelegatingLexer

此外,您真的需要显式构造一个 MockLexer 吗?使用类似 Mockito 的框架可以使您的测试更加容易和快速;您可以通过以下方式轻松开始:

Lexer mockLexer = Mockito.mock(Lexer.class);

Mockito.when(mockLexer.doFoo()).thenReturn("bar");

关于java - Java 中接口(interface)/类/模拟类的命名约定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7884502/

相关文章:

java - 如何仅显示 Room 数据库中存储的特定年份的日期?

java - 如何在 Java 中获取唯一的计算机标识符(如磁盘 ID 或主板 ID)?

java - JFrame 的卡片布局?

java - 单独类中的线程如何将数据传递给主类

java - 为什么局部变量不允许使用 volatile 关键字?

java - 我如何强制一个特定的 JTextArea 不使用抗锯齿,同时在我的应用程序的其余部分保持开启?

java - 如何为范围查询编写 Aerospike 流 UDF

java - 如何检查其他应用授予的权限

java - 多模块maven项目的循环依赖

javascript - 延迟加载:How to display multiple pdf documents as one with pdf.js?