2012-02-21 20 views
0

私は約2〜3年前からプログラムしていますが、実際には私はactionscript atmでゲームを開発しています。私は、名前、レベル、経験、ダメージ、防御などのいくつかのフィールドを持つキャラクタークラスを持っています。私はそれらを保護して、派生クラスがそれらを見ることができるようにしました。そして、私はgettersとsetterを使ってそれらをカプセル化しました。他のクラスはgetterしか見ることができません。しかし、アクションスクリプトでは、アクセサを保護することはできないと思われるので、それらを公開する必要があります。しかし、なぜ誰かが見て編集することができれば、どうしてアクセサを使うべきですか?私はカプセル化をスキップしてパブリックフィールドに行き、設定時に他のステートメントを実行する必要のあるものをカプセル化してください。たとえば、経験欄を増やす場合は、レベルアップを確認してください。アクセサーを使用する必要がありますか?

あなたが他のクラスでのプライベート/保護されたアクセサを見ることができないとして、彼らはコーディングが容易になりますので、私は、C#でアクセサが好き。

アクセサにいくつかのより多くの経験を積んだプログラマの意見を持っていいだろう。

答えて

1

アクセサーは大変のコンベンションですが、それに従う必要はありません。

それらを使用する利点は、IncreaseLevel()機能が何をするかは明らかだ、つまり、あなたがより良いAPIを持っています。

はまた、あなたはあなたのコードの他の部分に通知するための柔軟性を持っています。たとえば、レベルを上げるたびに特定のアニメーションを実行したい場合は、IncreaseLevel()関数で実行できます。全体的に、私はそれをお勧めします。

関連する問題