0

私は読みやすいコードを書くために最善を尽くしていますが、私の仕事には疑問を抱くことがよくあります。

保護されたソフトウェアのステータスを確認するためのコードを作成し、使用中のソフトウェアがライセンスされているかどうかを確認するメソッドを持つクラスを作成しました(別のLicensingクラスがあります)。

appProtectオブジェクトを作成して、現在アクセスされているクラスに「Protection」という名前を付けました。クラス内のメソッドを使用すると、アプリケーションが実際に使用ライセンスを取得していることを確認するために、アプリケーションに関するさまざまなことを確認できます。

「保護」はそのようなクラスの受け入れ可能な名前ですか?

メソッド、クラス、オブジェクトなどの名前を長く考えなければならない場合は、おそらくオブジェクト指向の方法でコーディングしていない可能性があることをどこかで読みました。私はこの投稿をする前にこれについて考えることに多くの時間を費やしました、それは私が名前の適切さを疑うように私を導きました!

この投稿を作成(および校正)する際に、私はこれまでの自分の仕事に真剣に疑問を抱き始めています。また、オブジェクトの名前をappProtectではなくapplicationProtectionに変更する必要があると考えています(これについてもコメントを受け付けていますか?)。私が「間違ったことをした」ことを単に確認しているだけでも、他の人の意見や意見から何かを学ぶことを願って、私はそれ以上のことを投稿しています!

編集:回答に感謝し、「有効な」質問ではなかった場合はお詫びします。別のスレッドが「プロテクター」を提案しましたが、有効なライセンスがあるかどうかに応じてクラスが機能するため、licenseChecker(@millimooseに感謝)を使用する予定でした。

4

3 に答える 3

1

クラスはオブジェクトの設計図です。オブジェクトは現実世界の概念を表します。したがって、クラスの名前は、その概念を参照するときに実際に使用する名前を単純に反映する必要があります。あなたの場合、保護は(有効で必ずしも悪い名前ではありませんが)あまり具体的ではありません。

于 2012-07-09T14:55:17.807 に答える
0

一般に、アクションではなくロールを参照する名前をクラスに付ける必要があります。他のオブジェクトと対話するクラスのインスタンスを作成するので、アプリケーション内の各オブジェクトが壮大なスキームで特定の役割を果たすことは明らかです。

LicenseChecker@millimoose が提案した名前は、クラスの役割を正確に反映しているため、あなたのケースに最適だと思います。

于 2012-07-09T14:55:32.717 に答える
0

コードを声に出して読んで、どのように聞こえるかを確認してください。明らかに完璧には聞こえませんが、クラス、インスタンス、およびメソッドの名前をプログラマーではない人に読んでいた場合、それらは合理的に聞こえ、ほとんど物語を伝えているはずです。多くの場合、 DSLのパターンに従うのはかなり良いと思います。これは Java プログラミングではあまり一般的ではなく、常に問題に適合するとは限りませんが、クラス名とメソッド名の良いガイドになると思います。

于 2012-07-09T14:53:57.660 に答える