0

我正在尽我所能写出可读性好的代码,但在我的工作中经常有疑问!

我正在创建一些代码来检查某些受保护软件的状态,并创建了一个类,该类具有检查正在使用的软件是否获得许可的方法(有一个单独的许可类)。

我通过创建 appProtect 对象将当前访问的类命名为“Protection”。类中的方法允许检查有关应用程序的许多内容,以确认它实际上已获得使用许可。

对于此类,“保护”是一个可接受的名称吗?

我在某处读到,如果您必须考虑方法、类、对象等的名称,那么您可能没有以面向对象的方式进行编码。在发这篇文章之前我花了很多时间思考这个问题,这让我怀疑这个名字的适用性!

在创建(和校对)这篇文章时,我开始严重怀疑我迄今为止的工作。我也在想我可能应该将对象重命名为 applicationProtection 而不是 appProtect (尽管我也愿意对此发表任何评论?)。我发布的内容不多,希望我能从其他人的观点/意见中学到一些东西,即使他们只是确认我“做错了”!

编辑:感谢您的回复,如果这不是一个“有效”的问题,我们深表歉意。我打算去 licenseChecker (感谢@millimoose)虽然另一个线程建议“保护者”这似乎更合适,因为该类的行为取决于是否有有效的许可证。

4

3 回答 3

1

类是对象的蓝图。对象代表现实世界的概念。因此,当您引用该概念时,类的名称应该简单地反映您在现实世界中使用的名称。在您的情况下,保护(即使是有效且不一定是坏名)不是很具体。

于 2012-07-09T14:55:17.807 回答
0

大声朗读代码,看看它听起来如何。显然这听起来并不完美,但是如果您正在向非程序员的人阅读类、实例和方法的名称,那么它们对他们来说应该是合理的,并且几乎是在讲述一个故事。我认为DSL的模式在很多情况下都非常适合遵循。这在 Java 编程中并不常见,并且并不总是适合问题,但我认为它为类和方法名称提供了一个很好的指南。

于 2012-07-09T14:53:57.660 回答
0

通常,您希望将类命名为与角色相关的名称,而不是动作。由于您将创建与其他对象交互的类的实例,很明显,您的应用程序中的每个对象在总体方案中都扮演着特定的角色。

我认为LicenseChecker@millimoose 建议的名称非常适合您的情况,因为它准确地反映了班级的角色

于 2012-07-09T14:55:32.717 回答