2

actionscript 3 でフラッシュ ゲームを作成しています。MovieClip クラスの 1 つで、いくつかの関数と変数を作成することからコーディングを開始しました。したがって、プライベート関数と変数は MovieClip の外部ではアクセスできないが、パブリック関数と変数はアクセスできることは誰もが知っています。

ここで私の質問があります:なぜ私たちは常にパブリック関数を使用しないのですか? 遅延の問題が発生しますか? プレーヤーがより多くの作業を行えるように、公開する特定の値を返しますか?

また、クラスを作成せずにフレーム コードを配置する場合、関数は常にパブリックになります。どうしてこれなの?私の最初の質問の答えで何らかの理由で、プライベート関数と変数をフレームアクションに入れてみませんか?

4

3 に答える 3

7

必要に応じて、すべてのパブリックを使用できます。

コードがマクドナルドで、あなたが店長だったとします。publicテーブル、椅子、無料の詰め替え用ソーダ マシンなど、顧客が必要とするものを作成します。ただし、顧客がアクセスする必要のないものもあり、それらは従業員専用ドアprivateでロックされたエリアにあります。知識のない人やキッチンにいる必要がある人は、何かを台無しにする可能性があります。

公開する必要があるものだけを公開することをお勧めします。これにより、内部の仕組みが侵害される可能性が低くなります。大規模なコード ベースと一緒に作業する人々 のチームで作業している場合は、より重要です。それがすべてあなたのコードであり、それを見るのがあなただけである場合、それはそれほど重要ではないでしょう。ただし、パブリック/プライベートを使用してプロパティ/メソッドを公開/制限すると、そのクラスのインスタンスを操作するときに混乱が少なくなるため、作業が楽になります。

于 2013-04-27T22:59:00.683 に答える
3

パブリック アクセスを常に使用するとは限らない理由は、あるクラスを別のクラスで使用したい場合には非常に便利ですが、混乱を招く可能性があるためです。必要なアイテムだけでなく、不要なアイテムもあります。必要のないものがあるのはなぜですか?それらは片付けて、放置する必要があります。これは単純にプライベート変数です。彼らは対話することを許可されていないため、より重要なものが通信できます。それが混乱に役立つことを願っています。

于 2013-04-27T22:36:47.397 に答える
2

オブジェクト指向の設計を行う場合、クラス ファイルにコードを記述していることに気付くでしょう。メソッドをパブリックにするときは、このメソッドを私のクラスの外から使用して、目標を達成することを明示的に言っています。

プライベート メソッドを使用して、自分のクラス以外でこのメソッドを使用しないでくださいと言って、誰か (自分自身など) が混乱するのを防ぎます。このメソッドはこの呼び出し用であり、使用しないでください。

例えば。

public function deleteAllUsers():void{
    // 1. check user is logged in
    // 2. check users are not active
    // 3. clean up another object.
    // 4. call _deteleAllusers
} 

private function _deleteAllUsers(){
    // delete from users (do no error checking.
}

上記の例から、deleteAllUsers を呼び出すと、多くのチェックが行われます。ただし、メソッド _deteleAllUsers を非公開にすると、エラー チェックをスキップできなくなります。このメソッドは、ユーザーを削除する準備が整ったときに、クラスによって内部的にのみ使用されます。

乾杯、ジョン。

于 2013-04-27T22:57:37.873 に答える