31日間の再構築ガイドラインの18:使用条件判断代替異常
2413 ワード
今日お話しする再構築は、他の場所ではなく、私の日常の仕事の発見から来ています.私は日常の仕事でよくこの再構築を使用しています.今日解決しなければならない問題に対して、他の解決策があるかもしれません.
日常的な符号化では、プログラムフローを制御するために異常を使用することがよくあります.次のコードが例です.
1: public class Microwave
原文リンク:http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/18/refactoring-day-18-replace-exception-with-conditional.aspx
日常的な符号化では、プログラムフローを制御するために異常を使用することがよくあります.次のコードが例です.
1: public class Microwave
2: {
3: private IMicrowaveMotor Motor { get; set;}
4:
5: public bool Start(object food)
6: {
7: bool foodCooked = false;
8: try
9: {
10: Motor.Cook(food);
11: foodCooked = true;
12: }
13: catch(InUseException)
14: {
15: foodcooked = false;
16: }
17:
18: return foodCooked;
19: }
20: }
, 。 ,
, 。
1: public class Microwave
2: {
3: private IMicrowaveMotor Motor { get; set; }
4:
5: public bool Start(object food)
6: {
7: if (Motor.IsInUse)
8: return false;
9:
10: Motor.Cook(food);
11:
12: return true;
13: }
14: }
原文リンク:http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/18/refactoring-day-18-replace-exception-with-conditional.aspx