例えば変数aが有効なときにのみ動作すべき関数xがあったとします。
この場合、以下の2パターンの書き方ができると思うのですが、どちらの書き方がよいでしょうか。
1.呼び出し元で変数aを判定してからxを呼び出す
c
1main() 2{ 3 if(a){ 4 x(); 5 } 6} 7 8x() 9{ 10 // 処理 11}
2.x内でaを判定し、無効なら処理しない
c
1main() 2{ 3 x(); 4} 5 6x() 7{ 8 if(a){ 9 // 処理 10 } 11} 12もしくは 13x() 14{ 15 if(!a) return; 16 // 処理 17}
1は、
xを呼び出す理由が明確であるが、呼び出し元が煩雑である。
2は、
xの呼び出し元はすっきり書けるが、処理が不要な場合でもxを呼んでしまう。
個人的にはプログラマの意図がわかる1を推したいですが、安全面で言えば2なんだと思います。
1と2をあわせるのが一番無難だと思いますが、過剰な気もします。
またこのようなデザインパターンを紹介している文献などありましたら教えてください。
変数aと関数xの関係は?

回答5件
あなたの回答
tips
プレビュー