public void ShouldCReturnTheSameInstance()
        {
            var instance1 = BasicSingleton.GetInstance();
            var instance2 = BasicSingleton.GetInstance();

            instance1.Should().BeSameAs(instance2);
        }
        public void ShouldCreateInstance()
        {
            var instance = BasicSingleton.GetInstance();

            instance.Should().NotBeNull();
            instance.Should().BeOfType <BasicSingleton>();
        }
예제 #3
0
        public void ZadanieB()
        {
            SingletonFactory factory = SingletonFactory.CreateSingletonFactory();
            int singletonCount       = 1000000;

            Type[] typeArray          = { typeof(BasicSingleton), typeof(ExtendedSingletonA), typeof(ExtendedSingletonB) };
            ISet <BasicSingleton> set = new HashSet <BasicSingleton>();

            for (int i = 0; i < singletonCount; i++)
            {
                BasicSingleton singleton = factory.CreateSingleton(typeArray[rand.Next(typeArray.Length)]);
                set.Add(singleton);
            }

            Assert.AreEqual(set.Count, 3, "Ilość singletonów różna od 3!");
        }
예제 #4
0
        static void Main(string[] args)
        {
            /*Strategy Pattern*/
            Console.WriteLine("Output for strategy pattern: \n");
            Person swordsman = new Swordsman(new SwordBehaviour());

            Console.WriteLine("The swordsman is:");
            swordsman.Fight();
            Console.WriteLine();
            Person bowman = new Bowman(new BowBehaviour());

            Console.WriteLine("The bowman is:");
            bowman.Fight();
            Console.WriteLine();
            bowman.SetWeapon(new KnifeBehaviour());
            Console.WriteLine("The bowman is:");
            bowman.Fight();
            Console.WriteLine();
            Console.WriteLine("______________________________________________________________________________");

            /*Observer Pattern*/
            Console.WriteLine("Output for observer pattern: \n");
            Newsticker        newsticker        = new Newsticker();                         //Instance of subject
            SmartwatchDisplay smartwatchDisplay = new SmartwatchDisplay(newsticker);        //instance of observer

            newsticker.RegisterObserver(smartwatchDisplay);                                 //register observer to subject

            newsticker.SetNews("Breaking News! Hamburger Software does not sell burgers!"); //update news and notify observers
            Console.WriteLine("______________________________________________________________________________");

            /*Decorator Pattern*/
            Console.WriteLine("Output for decorator pattern: \n");
            DungieGame dungieGame = new Worstiny();

            Console.WriteLine(dungieGame.Description + "\nPrice: " + dungieGame.Price + "Euro");
            Console.WriteLine();
            dungieGame = new GoodDLC(dungieGame);
            Console.WriteLine(dungieGame.Description + "\nPrice: " + dungieGame.Price + "Euro");
            Console.WriteLine();
            dungieGame = new EvenBetterDLC(dungieGame);
            Console.WriteLine(dungieGame.Description + "\nPrice: " + dungieGame.Price + "Euro");
            Console.WriteLine("______________________________________________________________________________");

            /*Factory Method Pattern*/
            Console.WriteLine("Output for factory method pattern: \n");
            DeviceFactory factory = new DeviceFactory();

            Factory_Method_Pattern.IDevice device = factory.MakeDevice(Factory_Method_Pattern.DeviceType.PC);
            Console.WriteLine("Factory created device:");
            Console.WriteLine(device.Name);
            Console.WriteLine();
            Console.WriteLine("______________________________________________________________________________");

            /*Abstract Factory Pattern*/
            Console.WriteLine("Output for abstract factory pattern: \n");

            AbstractStore yStore = new YStore();
            Device        pineappleSmartphone = yStore.OrderDevice(Abstract_Factory_Pattern.DeviceType.Smartphone);

            Console.WriteLine("Peter received his " + pineappleSmartphone.Name + "!");
            Console.WriteLine();

            AbstractStore jupiterStore = new JupiterStore();

            Device macroComputer = jupiterStore.OrderDevice(Abstract_Factory_Pattern.DeviceType.Computer);

            Console.WriteLine("Chris received his " + macroComputer.Name + "!");
            Console.WriteLine("______________________________________________________________________________");

            /*Singleton Pattern*/
            Console.WriteLine("Output for singleton pattern: \n");
            BasicSingleton basicSingleton = BasicSingleton.CreateInstance;

            Console.WriteLine(basicSingleton.Text);


            Console.ReadLine();
        }