Example #1
0
        // Strategy 策略模式 https://www.dofactory.com/net/strategy-design-pattern
        // 策略模式可以說是:一個類別(Context)使用一種行為(Action),而這個行為會有不同種的動作(ConcreteAction),
        // 在不同的場景,這個類別可以依據情況對於自己的同一個行為(Action),選用不同的動作(ConcreteAction)。

        // 例如:有一個弓箭手(Context)使用攻擊這種行為(Action),而攻擊行為會有不同種的動作(ConcreteAction),
        // 有 使用弓箭射擊(ConcreteAction)、使用弓打擊(ConcreteAction)、使用腳踢擊(ConcreteAction)
        // 在不同的場景,這個弓箭手(Context)可以依據情況對攻擊這個行為(Action),選用不同的動作(ConcreteAction)。
        public static void Strategy()
        {
            Console.WriteLine("弓箭手使出攻擊!!");
            var archer = new Archer();

            Console.WriteLine($"造成 {archer.PerformAttack(new AttackWithArrow()).ToString()} 點傷害。");
        }