如何命名您创建的不同类/接口?有时我没有实现信息添加到实现名称 - 如接口FileHandler和类SqlFileHandler.
当发生这种情况时,我通常将该界面命名为"普通"名称,Truck并命名实际的类TruckClass.
在这方面,您如何命名接口和类?
大多数面向对象的语言都将其接口名称加上大写字母I,为什么Java不这样做呢?不遵守这一惯例的理由是什么?
为了证明我的意思,如果我想要一个用户界面和一个用户实现,我在Java中有两个选择:
- Class = User,Interface = UserInterface
- Class = UserImpl,Interface = User
在大多数语言中:
Class = User,Interface = IUser
现在,您可能会争辩说,您总是可以为用户实现选择一个最具描述性的名称,但问题就会消失,但Java正在推动POJO方法,而大多数IOC容器都广泛使用DynamicProxies.这两个因素共同意味着您将拥有许多具有单个POJO实现的接口.
所以,我想我的问题归结为:"是否值得遵循更广泛的接口命名约定,特别是考虑到Java框架似乎在哪里?"
我正在使用 Laravel 中的存储库模式和接口,发现命名很冗长:UserRepositoryInterface 或 EventRepositoryInterface。是否有其他不那么冗长的命名约定?我希望我的代码对未来的程序员保持可读性。在 DDD 中,有些人建议将 UserRepositoryInterface 简单地命名为 Users 或 AllUsers,更多在这里:如何命名存储库和服务接口?.