オブジェクトを抽象メソッドに渡し、列挙型で計算することはできますか?ここにシナリオがあり、4つの定数があり、それぞれに独自の値が割り当てられています。定数に基づいて、私の方法で計算を行います。代わりに、計算をenumで行いたいと思い、応答を得たいと思います。列挙型で計算を行うには、enumメソッドに2つまたは3つの参照オブジェクトを渡す必要があります。計算を行うenums
例:学校は列挙型で、定数はTEACHER(LOWLEVELACCESS)、STUDENT(NOACCESS)、OFFICEADMIN(OFFICEACCESS)です。列挙で
、Iは、引数として文字列をユーザーPOJOを受信し、オブジェクトの一部のフィールドを更新し、呼び出し元に同じユーザー(更新で)POJOを返している抽象メソッドプロセスを有します。これによって、定数とその論理を列挙型で同期させることができます。
だから私の質問、
が列挙型で、この実装を持っている、それは大丈夫ですか? (私はほとんどの例で、列挙型を扱っていて、計算に使用しない定数を格納しているのを見てきました)この計算はクラス内のメソッドを使って行うことができます。
enumでゲッター/セッターメソッドを作成することはできますか?
ありがとうございました!!
あなたは後にしているものにいくつかの(擬似)コードを投稿することができますか?基本的には、列挙型にメソッドを追加してそこで計算しますが、デザインの匂いとして私を襲ってしまいます。 – Thomas
@Thomas私は潜在的なデザインのにおいについて同意します。私は一般化しませんが、あなたがこのようにenumを悪用すれば事実かもしれないと思います。 – davidxxx
enum定数が振る舞いを持つことは、まったく受け入れられ、慣用的です。 「コードの匂い」は列挙型の力の90%を否定することです。 –