- スレ立てるまでもない質問はここで 135匹目
467 :デフォルトの名無しさん[sage]:2014/04/20(日) 21:23:33.55 ID:X4oB/m0H - 防御的プログラミングという手法があります
動的言語では型チェックがないので、動的言語で防御的プログラミングを行う場合は、 全ての引数とメソッドの返り値に対しinstanceofを実行する必要が生じて非現実的になると思います つまり「防御的プログラミングを必要としない状況でしか動的言語は使えない」という認識で合っていますでしょうか
|
- スレ立てるまでもない質問はここで 135匹目
468 :デフォルトの名無しさん[sage]:2014/04/20(日) 21:24:36.27 ID:X4oB/m0H - 動的言語→動的型付け言語、です。議論と関係ない揚げ足取りを防ぐためにあらかじめ釘を刺しておきます
|
- スレ立てるまでもない質問はここで 135匹目
471 :デフォルトの名無しさん[sage]:2014/04/20(日) 21:49:09.76 ID:X4oB/m0H - >>470
データの中身をチェックする前にデータの型が分からないとチェック用のgetterとかが呼び出せないって意味じゃないの その型を調べるためにinstanceofを使うのが冗長だと言ってるのでは
|
- Androidプログラミング質問スレ revision42
361 :デフォルトの名無しさん[sage]:2014/04/20(日) 21:50:40.60 ID:X4oB/m0H - >>360
元サイトのコードを見たらOnClickとかに入ってたから、>>355のコードも何のメソッドに入ってるのかが分からなければ そのメソッドが定期的に呼び出されるものならループにはなるだろ
|
- スレ立てるまでもない質問はここで 135匹目
473 :デフォルトの名無しさん[sage]:2014/04/20(日) 21:55:00.77 ID:X4oB/m0H - >>472
エラーが発生することを前提に組むと例外をキャッチするコードだらけになって大変なことになるのでは?
|
- スレ立てるまでもない質問はここで 135匹目
474 :デフォルトの名無しさん[sage]:2014/04/20(日) 21:58:40.33 ID:X4oB/m0H - 例えばforループの中でエラーが発生したらforループの中でキャッチしなければループ中に1つエラーが起きただけで残りの要素がスキップされてしまうし
だから「メソッドなしエラーで判定すればいい」理論だとあらゆる場所でtry-catchだらけになって滅茶苦茶なことになるのでは?
|
- スレ立てるまでもない質問はここで 135匹目
479 :デフォルトの名無しさん[sage]:2014/04/20(日) 22:27:10.41 ID:X4oB/m0H - 結論:動的型言語では「引数チェックをしたい場合はすればいい。したくない場合はしなければいい」
メリット:引数チェックが必要ない状況を許容する点。静的型言語では引数チェックが強制されるのでこのような柔軟さはない デメリット:常に引数チェックをしたい状況(例えば防御的プログラミング)では「どちらも選べる」のメリットが生かせずデメリットだけが残る 以上
|