Browse Source

观察者模式

jeffrey 8 years ago
parent
commit
58f931a7f7

+ 9 - 6
ObserverPattern/DelegateImplement/FishingRod.cs

@@ -14,12 +14,15 @@ namespace ObserverPattern.DelegateImplement
         {
             Console.WriteLine("开始下钩!");
 
-            //用随机数模拟鱼咬钩,若随机数大于5,通知订阅者
-            var a = new Random(10).Next();
-            var type = (FishType) new Random().Next(0, 5);
-            Console.WriteLine("铃铛:叮叮叮,鱼儿咬钩了");
-            if (FishingEvent != null)
-                FishingEvent(type);
+            //用随机数模拟鱼咬钩,若随机数为偶数,则为鱼咬钩
+            if (new Random().Next() % 2 == 0)
+            {
+                var a = new Random(10).Next();
+                var type = (FishType) new Random().Next(0, 5);
+                Console.WriteLine("铃铛:叮叮叮,鱼儿咬钩了");
+                if (FishingEvent != null)
+                    FishingEvent(type);
+            }
         }
     }
 

+ 7 - 4
ObserverPattern/SimpleImplement/FishingTool.cs

@@ -44,10 +44,13 @@ namespace ObserverPattern.SimpleImplement
         {
             Console.WriteLine("开始下钩!");
 
-            //用随机数模拟鱼咬钩,若随机数大于5,通知订阅者
-            var type = (FishType) new Random().Next(0, 5);
-            Console.WriteLine("铃铛:叮叮叮,鱼儿咬钩了");
-            Notify(type);
+            //用随机数模拟鱼咬钩,若随机数为偶数,则为鱼咬钩
+            if (new Random().Next() % 2 == 0)
+            {
+                var type = (FishType) new Random().Next(0, 5);
+                Console.WriteLine("铃铛:叮叮叮,鱼儿咬钩了");
+                Notify(type);
+            }
         }
     }