1

コードの明快さ以外に何か (セキュリティの問題など) がある場合、このコードでクラス変数を取得しないようにする必要があるのはなぜだろうか。

    getVar('var');

それ以外の:

   getId(); getName(); etc. etc.

?

4

1 に答える 1

3

理由の 1 つは、IDE がメソッド名のオートコンプリートとタイプヒントを支援できるようにするためだと思います。

最初の例のように一般的な get メソッドを使用している場合、IDE はその助けを提供できません。

また、それがパブリック API である場合 (つまり、あなた以外の開発者が使用する予定の場合)、可能なオプションを教えてくれない単一の get メソッドではなく、固定されたインターフェイスを使用することで、開発者は本当に役に立ちます。それのためです。

ここでは特に PHP について話しているので、説明している機能が PHP の組み込み__get()メソッドに非常に似ていることを指摘しておく価値があります。このメソッドは、説明した方法とほぼ同じように機能しますがgetVar()、変数をプロパティとして公開します。

これには、IDE タイプ ヒンティングにも同様の問題がありますが、まともな IDE を使用している場合は、サポートされているプロパティを IDE に伝えるためにドキュメント コメントを使用することで回避できます。メソッドにはこのgetVar()オプションがありません。

于 2013-03-27T15:00:20.157 に答える