Exemple #1
0
            static void Main(string[] args)
            {
                var single1 = new SingleValue();
                var single2 = new SingleValue();
                var many1   = new ManyValues();
                var many2   = new ManyValues();

                single1.Value = 1;
                single2.Value = 2;

                many1.Add(single1.Value);
                many1.Add(single2.Value);
                many2.Add(single2.Value);
                many2.Add(single2.Value);

                List <IValueContainer> x = new List <IValueContainer>();

                x.Add(many1);
                x.Add(many2);
                x.Add(single1);
                x.Add(single2);

                Console.WriteLine(x.Sum());
                Console.ReadLine();
            }
        public void Test()
        {
            var singleValue = new SingleValue {
                Value = 11
            };
            var otherValues = new ManyValues();

            otherValues.Add(22);
            otherValues.Add(33);
            Assert.That(new List <IValueContainer> {
                singleValue, otherValues
            }.Sum(), Is.EqualTo(66));
        }
Exemple #3
0
        // Objects can use other objects via inheritance/composition
        // Some composed and singular objects need similar/identical behaviors
        // Composite design pattern lets us treat both types of objects uniformly
        // C# has special support for the enumeration concept
        // A single object can masquerade as a collection with yield return this;
        public static void DemoNumberThree()
        {
            var singleValue = new SingleValue {
                Value = 11
            };
            var otherValues = new ManyValues {
                22, 33
            };

            WriteLine(new List <IValueContainer> {
                singleValue, otherValues
            }.Sum() == 66 ? "Yey it works!" : "Error 404");
        }
Exemple #4
0
        public void Test()
        {
            var s = new SingleValue {
                Value = 10
            };
            var m = new ManyValues();

            m.Add(20);
            m.Add(30);

            Assert.That(new List <IValueContainer> {
                s, m
            }.Sum(), Is.EqualTo(60));
        }
        static void Main(string[] args)
        {
            var manyValues = new ManyValues()
            {
                1, 2, 3
            };
            var singleValue = new SingleValue(4);

            var list = new List <IValueContainer> {
                manyValues, singleValue
            };

            Console.WriteLine(list.Sum());
        }
Exemple #6
0
        static void Main(string[] args)
        {
            var single = new SingleValue {
                Value = 3
            };

            Console.WriteLine($"Single sum: {single.Sum()}");

            var many = new ManyValues();

            many.Add(12);
            many.Add(6);
            Console.WriteLine($"Single sum: {many.Sum()}");
            Console.ReadKey();
        }
Exemple #7
0
        static void Main(string[] args)
        {
            var singleValue = new SingleValue {
                Value = 11
            };
            var otherValues = new ManyValues {
                22, 33
            };

            var sum = new List <IValueContainer> {
                singleValue, otherValues
            }.Sum();

            Console.WriteLine($"Sum: {sum}");
        }
        public static void Start()
        {
            var singleValue = new SingleValue {
                Value = 11
            };
            var otherValues = new ManyValues();

            otherValues.Add(22);
            otherValues.Add(33);
            Console.WriteLine(new List <IValueContainer> {
                singleValue, otherValues
            }.Sum());

            Console.WriteLine(ExtensionMethods53.Sum(new List <IValueContainer> {
                singleValue, otherValues
            }));
        }
Exemple #9
0
        public void Sum_AddMultipleValues_ReturnsSum()
        {
            var singleValue = new SingleValue()
            {
                Value = 4
            };
            var manyValues = new ManyValues {
                1, 2
            };
            var container = new List <IValueContainer>()
            {
                singleValue, manyValues
            };
            var sum = container.Sum();

            Assert.That(sum, Is.EqualTo(7));
        }
        public static void Main(string[] args)
        {
            var singleValue = new SingleValue {
                Value = 11
            };
            var otherValues = new ManyValues();

            otherValues.Add(22);
            otherValues.Add(33);
            var sum = new List <IValueContainer> {
                singleValue, otherValues
            }.Sum();
            var s = new SingleValue();

            Console.WriteLine(sum);
            Console.ReadKey();
        }
Exemple #11
0
        static void DemoComposite()
        {
            ManyValues items = new ManyValues();

            items.Add(10);
            items.Add(30);
            items.Add(18);

            IValueContainer item = new SingleValue()
            {
                Value = 6
            };

            List <IValueContainer> containters = new List <IValueContainer>();

            //containters.Add(items);
            //containters.Add(item);
        }
        static void Main(string[] args)
        {
            List <int> numbersList = new List <int> {
                1, 4, 5, 6, 3, 4
            };
            var val = new SingleValue();

            val.Value = 5;

            var singleValue = val.Sum();

            Console.WriteLine($"Single value is {singleValue}");

            var many = new ManyValues();

            many.AddRange(numbersList);
            var manyValues = many.Sum();

            Console.WriteLine($"Sum of many values is {manyValues}");
        }
        static void Main(string[] args)
        {
            var value1 = new SingleValue {
                Value = 3
            };
            var values1 = new ManyValues {
                4, 5
            };

            Console.WriteLine(value1.Sum());

            var result = values1.Sum();

            Console.WriteLine(result);

            var totalValues = new List <IValueContainer> {
                value1, values1
            };

            Console.WriteLine(totalValues.Sum());
        }
Exemple #14
0
        static void Main(string[] args)
        {
            SingleValue sv = new SingleValue()
            {
                Value = 5
            };
            ManyValues mv = new ManyValues()
            {
                5,
                5
            };

            var list = new List <IValueContainer>()
            {
                sv,
                mv
            };

            Console.WriteLine($"Sum is: {list.Sum()}");
            Console.ReadLine();
        }
Exemple #15
0
        static void Main(string[] args)
        {
            {
                var value = new SingleValue {
                    Value = 55
                };
                var sum = ExtensionMethods.Sum(new List <IValueContainer> {
                    value
                });
                Debug.Assert(55 == sum);
            }

            {
                var values = new ManyValues {
                    22, 33, 44
                };
                var sum = ExtensionMethods.Sum(new List <IValueContainer> {
                    values
                });
                Debug.Assert(99 == sum);
            }
        }
        public static void Main()
        {
            //Builder
            var builder = new CodeBuilder("Person").AddField("string", "Name").AddField("int", "Age");

            Console.WriteLine(builder.ToString());

            //Factory
            var factory = new F.Factory();
            var person  = factory.CreateInstance("Alexander");

            // Numbers of models should be as pointers to the Factories if we want to have different models instatiated from one Factory
            Console.WriteLine(person);

            //Prototype
            Point one = new Point {
                X = 1, Y = 2
            };
            Point two = new Point {
                X = 3, Y = 4
            };
            Line line = new Line {
                Start = one, End = two
            };
            Line copiedLine = line.DeepCopyJson();

            copiedLine.Start.X = 57;

            Console.WriteLine(line);
            Console.WriteLine(copiedLine);

            //Flyweight
            var sentence = new Sentence("Hasta la vista");

            sentence[0].IsCapitalized = true;
            Console.WriteLine(sentence);

            //Proxy
            var person1 = new PersonProxy(new Person {
                Age = 21
            });

            Console.WriteLine(person1.Drive());
            person1.Age = 14;
            Console.WriteLine(person1.Drink());

            //Bridge
            var circle = new Circle();
            var square = new Square();

            Console.WriteLine(circle.ToString());
            Console.WriteLine(square.ToString());

            //Composite
            var manyValues = new ManyValues
            {
                new SingleValue {
                    Value = 5
                },
                new SingleValue {
                    Value = 3
                },
                new SingleValue {
                    Value = 2
                }
            };
            var some = manyValues.Sum();

            //ChainOfResponsibility
            var game       = new Game();
            var goblin     = new Goblin(game);
            var goblinKing = new GoblinKing(game);

            //Mediator
            Use.Mediator mediator = new Use.Mediator();
            var          p1       = new Participant(mediator);
            var          p2       = new Participant(mediator);

            p1.Say(2);
            p2.Say(4);

            //Memento
            var ba = new BankAccount(100);
            var m1 = ba.Deposit(50); // 150
            var m2 = ba.Deposit(25); // 175

            Console.WriteLine(ba);
            // restore to m1
            ba.Restore(m1);
            Console.WriteLine(ba);
            ba.Restore(m2);
            Console.WriteLine(ba);
        }