Esempio n. 1
0
        private void btnDecorator_Click(object sender, EventArgs e)
        {
            // Create book

            Book book = new Book("Worley", "Inside ASP.NET", 10);

            book.Display();

            // Create video

            Video video = new Video("Spielberg", "Jaws", 23, 92);

            video.Display();

            // Make video borrowable, then borrow and display

            Debug.WriteLine("\nMaking video borrowable:");

            Borrowable borrowvideo = new Borrowable(video);

            borrowvideo.BorrowItem("Customer #1");
            borrowvideo.BorrowItem("Customer #2");

            borrowvideo.Display();
        }
Esempio n. 2
0
        /**
         * DECORATOR PATTERN: Attach additional responsibilities to an object dynamically.
         *      Decorators provide a flexible alternative to subclassing for extending functionality.
         *
         *  Component   (LibraryItem)
         *      defines the interface for objects that can
         *      have responsibilities added to them dynamically.
         *
         *  ConcreteComponent   (Book, Video)
         *      defines an object to which additional responsibilities can be attached.
         *
         *  Decorator   (Decorator)
         *      maintains a reference to a Component object and defines an interface
         *      that conforms to Component's interface.
         *
         *  ConcreteDecorator   (Borrowable)
         *      adds responsibilities to the component.
         */
        static void Main(string[] args)
        {
            //Create a book
            Book book = new Book("Steve Henry", ".NET Core Proffessional", 10);

            book.Display();

            // Create video
            Video video = new Video("Spielberg", "JURRASIC PARK", 30, 120);

            video.Display();

            //Make a video object borrowable, then borrown and display
            Console.WriteLine("Now make the video borrowable.");
            Borrowable borrowableVideo = new Borrowable(video);

            borrowableVideo.BorrowItem("Customer #1");
            borrowableVideo.BorrowItem("Customer #2");
            borrowableVideo.BorrowItem("Customer #3");
            borrowableVideo.BorrowItem("Customer #4");

            borrowableVideo.Display();


            Console.ReadKey();
        }
Esempio n. 3
0
        static void Main()
        {
            Book book = new Book("Ernest Hemingway", "For Whom the Bell Tolls", 100, 480);

            Song song = new Song("Metallica", "For Whom the Bell Tolls", 120, 5.12);

            book.Display();
            song.Display();

            Console.WriteLine("-----------------------------------------");
            Console.WriteLine("Make the book and song borrowable and three books borrowed");
            Borrowable borrowableBook = new Borrowable(book);
            Borrowable borrowableSong = new Borrowable(song);

            borrowableBook.BorrowItem("Marin Marinov");
            borrowableBook.BorrowItem("Ivan Ivanov");
            borrowableBook.BorrowItem("Dimitar Dimitrov");
            borrowableBook.Display();

            Console.WriteLine("-----------------------------------------");
            Console.WriteLine("Two books returned");
            borrowableBook.ReturnItem("Marin Marinov");
            borrowableBook.ReturnItem("Ivan Ivanov");
            borrowableBook.Display();
        }
        public static void Run()
        {
            // Create book
            Book book = new Book("Worley", "Inside ASP.NET", 10);

            book.Display();

            // Create video
            Video video = new Video("Spielberg", "Jaws", 23, 92);

            video.Display();

            // Make video borrowable, then borrow and display
            Console.WriteLine("\nMaking video borrowable:");

            Borrowable borrowvideo = new Borrowable(video);

            borrowvideo.BorrowItem("Customer #1");
            borrowvideo.BorrowItem("Customer #2");

            borrowvideo.Display();

            // Wait for user
            Console.ReadKey();
        }
Esempio n. 5
0
        static void Main(string[] args)
        {
            //create book
            Book book = new Book("Worley","Inside ASP.NET",10);
            book.Display();

            //create video
            Video video = new Video("Spielberg","Jaws",23,92);
            video.Display();

            //Make a video borrowable, then borrow and display

            Console.WriteLine("\nMaking video borrowable");

            Borrowable borrowvideo = new Borrowable(video);
            borrowvideo.BorrowItem("Joe Bloggs");
            borrowvideo.BorrowItem("Homer Simpson");

            borrowvideo.Display();

            Console.WriteLine("\nJoe Bloggs returns video");

            // return a vidoe and display - notice video count
            borrowvideo.ReturnItem("Joe Bloggs");
            borrowvideo.Display();

            //wait for user
            Console.ReadKey(true);
        }
Esempio n. 6
0
        static void DecoratorTester()
        {
            #region sample 1
            var c  = new ConcreteComponent();
            var d1 = new ConcreteDecoratorA();
            var d2 = new ConcreteDecoratorB();

            // Link decorators
            d1.SetComponent(c);
            d2.SetComponent(d1);

            d2.Operation();

            #endregion


            #region sample 2
            var book = new Book("Worley", "Inside ASP.NET", 10);
            book.Display();

            // Create video
            var video = new Video("Spielberg", "Jaws", 23, 92);
            video.Display();

            // Make video borrowable, then borrow and display
            Console.WriteLine("\nMaking video borrowable:");

            var borrowvideo = new Borrowable(video);
            borrowvideo.BorrowItem("Customer #1");
            borrowvideo.BorrowItem("Customer #2");

            borrowvideo.Display();
            #endregion
        }
Esempio n. 7
0
        public static void Run()
        {
            IRobot robot = new Robot();

            robot.Introduce("Hello");

            IRobot dancingRobot = new DancingRobot(robot);

            dancingRobot.Introduce("He yo");

            IRobot dancingAndShooting = new DancingAndShootingRobot(dancingRobot);

            dancingAndShooting.Introduce("Hey");

            Console.WriteLine(new String('-', 50));

            //2

            // Create book
            var book = new Book("Microsoft", "CLR via C# 4", 10);

            book.Display();
            Console.WriteLine(new string('-', 60));

            // Create video
            var video = new Video("Stanley Kubrick", "A Clockwork Orange", 23, 92);

            video.Display();
            Console.WriteLine(new string('-', 60));

            // Make book borroable, then borrow and display
            Console.WriteLine("Making book borrowable:");
            var borrowableBook = new Borrowable(book);

            borrowableBook.BorrowItem("Nikolay Kostov");
            borrowableBook.BorrowItem("Ivaylo Kenov");
            borrowableBook.Display();
            Console.WriteLine(new string('-', 60));

            // Make video borrowable, then borrow and display
            Console.WriteLine("Making video borrowable:");
            var borrowableVideo = new Borrowable(video);

            borrowableVideo.BorrowItem("Nikolay Kostov");
            borrowableVideo.BorrowItem("Ivaylo Kenov");
            borrowableVideo.Display();
            Console.WriteLine(new string('-', 60));

            // Make only video buyable
            Console.WriteLine("Making video buyable:");
            var buyableAndBorrowableVideo = new Buyable(borrowableVideo, 15);

            buyableAndBorrowableVideo.Display();
            Console.WriteLine(new string('-', 60));
        }
        public static void Main()
        {
            var book = new Book("Iskra Nikolova", "Nishto", 12);

            var video = new Video("Iskra Nikolova", "Neshto", 22, 99);

            var borrowableVideo = new Borrowable(video);
            borrowableVideo.Display();

            var borrowableVideo1 = new Borrowable(book);           
            borrowableVideo1.Display();
        }
Esempio n. 9
0
        public void BorrowItemTest()
        {
            Book       book           = new Book("Worley", "Inside ASP.NET", 10);
            Borrowable borrowableBook = new Borrowable(book);

            int initialAvailableCopies = book.NumCopies;

            borrowableBook.BorrowItem(customer);

            // TODO: V2lja kirjutada ka see et decorator
            Assert.AreEqual(initialAvailableCopies - 1, book.NumCopies);
            CollectionAssert.Contains(borrowableBook.Borrowers, customer);
        }
        public void CanBorrowBook()
        {
            Book myBook = new Book("Cash Craig", "Fake Book", 1991, 7);

            int oldCount = myBook.AvailableAmount;

            Borrowable bookBorrowable = new Borrowable(null, new Borrow(myBook));

            bookBorrowable.BorrowOne();

            int newCount = myBook.AvailableAmount;

            Assert.AreEqual(oldCount - 1, newCount);
        }
Esempio n. 11
0
        public void DecoTest()
        {
            book.Display();
            video.Display();
            // Make video borrowable, then borrow and display
            Console.WriteLine("\nMaking video borrowable:");

            Borrowable borrowvideo = new Borrowable(video);

            borrowvideo.BorrowItem("Customer #1");
            borrowvideo.BorrowItem("Customer #2");

            borrowvideo.Display();
        }
Esempio n. 12
0
        public override void Run()
        {
            var book  = new Book("Jonas", "Deep space", 3);
            var video = new Video("Andrej Jasky", "Final wood", 240, 7);

            var borrowableVideo = new Borrowable(video);

            borrowableVideo.Borrow("Stefan");
            borrowableVideo.Borrow("Michael");

            borrowableVideo.Return("Stefan");

            borrowableVideo.PresentInfo();
        }
        public static void Main()
        {
            var book = new Book("Iskra Nikolova", "Nishto", 12);

            var video = new Video("Iskra Nikolova", "Neshto", 22, 99);

            var borrowableVideo = new Borrowable(video);

            borrowableVideo.Display();

            var borrowableVideo1 = new Borrowable(book);

            borrowableVideo1.Display();
        }
        static void Main(string[] args)
        {
            Beverage essp = new Espresso();

            Console.WriteLine(essp.GetDiscription() + "\t" + essp.cost().ToString());

            Beverage houseB = new HouseBlend();

            Console.WriteLine(houseB.GetDiscription() + "\t" + houseB.cost().ToString());

            essp = new Whip(essp);
            Console.WriteLine(essp.GetDiscription() + "\t" + essp.cost().ToString());

            essp = new SteamMilk(essp);
            Console.WriteLine(essp.GetDiscription() + "\t" + essp.cost().ToString());

            houseB = new Soy(houseB);
            Console.WriteLine(houseB.GetDiscription() + "\t" + houseB.cost().ToString());

            // Create book
            Book book = new Book("Worley", "Inside ASP.NET", 10);

            book.Display();
            // Create video
            Video video = new Video("Spielberg", "Jaws", 23, 92);

            video.Display();
            // Make video borrowable, then borrow and display

            Console.WriteLine("\nMaking video borrowable:");

            Borrowable borrowvideo = new Borrowable(video);

            borrowvideo.BorrowItem("Customer #1");
            borrowvideo.BorrowItem("Customer #2");
            borrowvideo.BorrowItem("Customer #3");
            borrowvideo.Display();

            borrowvideo.ReturnItem("Customer #1");
            borrowvideo.ReturnItem("Customer #2");
            borrowvideo.Display();

            // Wait for user
            Console.ReadKey();

            while (true)
            {
            }
        }
Esempio n. 15
0
        static void Main(string[] args)
        {
            //ConcreteComponent component = new ConcreteComponent();
            //ConcreteDecoratorA decoratorA = new ConcreteDecoratorA();
            //ConcreteDecoratorB decoratorB = new ConcreteDecoratorB();

            //decoratorA.SetComponent(component);
            //decoratorB.SetComponent(decoratorA);

            //decoratorB.Operation();

            //BasicPerson person = new BasicPerson();
            //TShirtDecorator ts = new TShirtDecorator();
            //HeadDecorator hd = new HeadDecorator();
            //TrousersDecorator tr = new TrousersDecorator();

            //tr.SetPerson(person);
            //ts.SetPerson(tr);
            //hd.SetPerson(ts);

            //hd.Show();

            // Create book

            Book book = new Book("Worley", "Inside ASP.NET", 10);

            book.Display();

            // Create video

            Video video = new Video("Spielberg", "Jaws", 23, 92);

            video.Display();

            // Make video borrowable, then borrow and display

            Console.WriteLine("\nMaking video borrowable:");

            Borrowable borrowvideo = new Borrowable(video);

            borrowvideo.BorrowItem("Customer #1");
            borrowvideo.BorrowItem("Customer #2");

            borrowvideo.Display();

            Console.WriteLine("Hello World!");
        }
Esempio n. 16
0
        public void TestMethod1()
        {
            Book book = new Book("Worley", "Inside ASP.NET", 10);
            var  res0 = book.Display();

            // Create video
            Video video = new Video("Spielberg", "Jaws", 23, 92);
            var   res1  = video.Display();

            //Make video borrowable, then borrow and display

            Borrowable borrowvideo = new Borrowable(video);

            borrowvideo.BorrowItem("Customer #1");
            borrowvideo.BorrowItem("Customer #2");

            var res2 = borrowvideo.Display();
        }
Esempio n. 17
0
        public static void Main()
        {
            var book = new Book("Roy Osherove", "The Art Of Unit Testing", 12);

            book.Display();

            var video = new Video("Mary Lambert", "It", 23, 92);

            video.Display();

            Console.WriteLine("\nMaking video borrowable:");

            var borrowableVideo = new Borrowable(video);

            borrowableVideo.BorrowItem("Stamat Hinknov");
            borrowableVideo.BorrowItem("Gosho Peshev");

            borrowableVideo.Display();
        }
Esempio n. 18
0
        private static void DecoratorDemo()
        {
            var book = new Book("Worley", "Inside ASP.NET", 10);

            book.Display();

            Video video = new Video("Spielberg", "Jaws", 23, 92);

            video.Display();

            Console.WriteLine("\nMaking video borrowable:");

            Borrowable borrowvideo = new Borrowable(video);

            borrowvideo.BorrowItem("Customer #1");
            borrowvideo.BorrowItem("Customer #2");

            borrowvideo.Display();
        }
Esempio n. 19
0
        public static void TestBorrowables()
        {
            var book      = new Book("Worley", "Inside ASP.NET", 10);
            var bookProps = book.Display(true);

            Assert.True(bookProps.Contains("Worley") || bookProps.Contains("Inside ASP.NET") || bookProps.Contains("10"));

            var video      = new Video("Spielberg", "Jaws", 23, 92);
            var videoProps = video.Display(true);

            Assert.True(videoProps.Contains("Spielberg") || videoProps.Contains("Jaws") || videoProps.Contains("23") || videoProps.Contains("92"));

            var borrowvideo = new Borrowable(video);

            borrowvideo.BorrowItem("Customer #1");
            borrowvideo.BorrowItem("Customer #2");

            var borrowProps = borrowvideo.Display(true);

            Assert.True(borrowProps.Contains("Customer #1") || borrowProps.Contains("Customer #2"));
        }
Esempio n. 20
0
        public static void DecoratorRealWorld()
        {
            // Create book
            Book book = new Book("Worley", "Inside ASP.NET", 10);

            book.Display();

            // Create video
            Video video = new Video("Spielberg", "Jaws", 23, 92);

            video.Display();

            // Make video borrowable, then borrow and display
            Log.WriteLine("\nMaking video borrowable:");

            Borrowable borrowvideo = new Borrowable(video);

            borrowvideo.BorrowItem("Customer #1");
            borrowvideo.BorrowItem("Customer #2");

            borrowvideo.Display();
        }
Esempio n. 21
0
        static void Main(string[] args)
        {
            Book book = new Book("Veysel MUTLU", "Decorator Design Pattern", 100);

            book.Display();

            Video video = new Video("Veysel MUTLU", "Junior Developer.mp4", 23, 92);

            video.Display();

            Console.WriteLine("\n Video Ödünç Alınabilir Yapılıyor");

            Borrowable borrowvideo = new Borrowable(video);

            borrowvideo.BorrowItem("Müşteri #1");
            borrowvideo.BorrowItem("Müşteri #2");

            borrowvideo.Display();


            Console.ReadKey();
        }
Esempio n. 22
0
        private static void TestDecorator()
        {
            Console.WriteLine("Testing decorator...");
            // Create book
            var book = new Book("Worley", "Inside ASP.NET", 10);

            book.Display();

            // Create video
            var video = new Video("Spielberg", "Jaws", 23, 92);

            video.Display();

            // Make video borrowable, then borrow and display
            Console.WriteLine("\nMaking video borrowable:");

            var borrowvideo = new Borrowable(video);

            borrowvideo.BorrowItem("Customer #1");
            borrowvideo.BorrowItem("Customer #2");

            borrowvideo.Display();
        }
Esempio n. 23
0
        public void Execute()
        {
            Message("Tworzymy obiekt Book który dziedziczy po abstrakcji LibraryItemBase");
            LibraryItemBase book = new Book("Wiśniewski", "Samotność w sieci", 2);

            book.Display();

            Message("Tworzymy obiekt video który dziedziczy również po abstrakcji LibraryItemBase");
            LibraryItemBase video = new Video("Star wars", "George Lucas", 120, 3);

            video.Display();

            Message(string.Format("Tworzymy obiekt który bedziemy dekorować{0}Dziedziczy on po abstrakcji dekoratora, który z kolei dziedziczy po LibraryItemBase{0}W dekratorze jest referencja do obiektu LibraryItemBase", Environment.NewLine));
            Borrowable borrowable = new Borrowable(book);

            borrowable.BorrowItem("Customer1");
            borrowable.BorrowItem("Customer2");

            borrowable.Display();

            Message(string.Format("SCHEMAT: {0}LibraryItemBase(ComponentBase) <--- Video,Book(Concrete component){0}LibraryItemBase <--- Decorator(Decorator){0}Decorator <---Obiekt dekorowany(Concrete decorator)", Environment.NewLine));
            Message(string.Format("UWAGI{0}Obiekt dekorujący musi posiadać konstruktor z parametrem LibraryItemBase który jest przepisany z Decoratora", Environment.NewLine));
        }
Esempio n. 24
0
        static void Main(string[] args)
        {
            Console.WriteLine("******Singleton******\n");

            LoadBalancer L1 = LoadBalancer.GetLoadBalancer();
            LoadBalancer L2 = LoadBalancer.GetLoadBalancer();
            LoadBalancer L3 = LoadBalancer.GetLoadBalancer();
            LoadBalancer L4 = LoadBalancer.GetLoadBalancer();

            if (L1 == L2 && L2 == L3 && L3 == L4)
            {
                Console.WriteLine("Same Instance");
            }

            LoadBalancer load = LoadBalancer.GetLoadBalancer();

            for (int i = 0; i < 15; i++)
            {
                Console.WriteLine(load.Server);
            }

            Console.WriteLine("\n******AbstractFactory******\n");

            ContinentFactory africa = new AfricaFactory();
            AnimalWorld      earth  = new AnimalWorld(africa);

            earth.RunFoodChain();

            ContinentFactory america = new AmericaFactory();

            earth = new AnimalWorld(america);
            earth.RunFoodChain();

            Console.WriteLine("\n******Factory******\n");

            Document[] document = new Document[2];
            document[0] = new Report();
            document[1] = new Resume();

            foreach (Document doc in document)
            {
                Console.WriteLine(doc.GetType().Name + " contains:");
                foreach (Page page in doc.Pages)
                {
                    Console.WriteLine("\t" + page.GetType().Name);
                }
            }
            Console.WriteLine("\n******Facade******\n");
            Mortgage mort      = new Mortgage();
            Customer customer  = new Customer("Chad");
            int      amount    = 100000;
            bool     elligable = mort.IsElligable(customer, amount);

            Console.WriteLine(customer.Name + " is " + (elligable ? "elligable" : "not elligable"));

            Console.WriteLine("\n******Decorator******\n");
            Book book = new Book("George RR Martin", "A song of ice and fire", 22);

            book.Display();

            Video video = new Video("Jaws", "Spielberg", 92, 18);

            video.Display();

            Borrowable borrowableVideo = new Borrowable(video);

            borrowableVideo.BorrowItem("Sky");
            borrowableVideo.BorrowItem("Inga");
            borrowableVideo.Display();

            Console.WriteLine("\n******Prototype******\n");
            ColorManager colorManager = new ColorManager();

            colorManager["red"]   = new Color(255, 0, 0);
            colorManager["green"] = new Color(0, 255, 0);
            colorManager["blue"]  = new Color(0, 0, 255);

            colorManager["angry"] = new Color(255, 54, 0);
            colorManager["peace"] = new Color(128, 211, 128);
            colorManager["flame"] = new Color(211, 34, 20);

            Color color1 = colorManager["red"].Clone() as Color;
            Color color2 = colorManager["peace"].Clone() as Color;
            Color color3 = colorManager["flame"].Clone() as Color;

            Console.WriteLine("\n******Builder******\n");
            VehicleBuilder builder;

            Shop shop = new Shop();

            builder = new ScooterBuilder();
            shop.Construct(builder);
            builder.Vehicle.Show();

            builder = new CarBuilder();
            shop.Construct(builder);
            builder.Vehicle.Show();

            builder = new MotorcycleBuilder();
            shop.Construct(builder);
            builder.Vehicle.Show();

            Console.WriteLine("\n******Adapter******\n");
            Compound unknown = new RichCompound("Unknown");

            unknown.Display();
            Compound water = new RichCompound("Water");

            water.Display();
            Compound benzene = new RichCompound("Benzene");

            benzene.Display();
            Compound ethanol = new RichCompound("Ethanol");

            ethanol.Display();

            Console.WriteLine("\n******Bridge******\n");
            Customers customers = new Customers("Chicago");

            customers.Data = new CustomersData();
            customers.Show();
            customers.Next();
            customers.Show();
            customers.Next();
            customers.Show();
            customers.Add("Henry Velasquez");
            customers.ShowAll();

            Console.WriteLine("\n******Composite******\n");
            CompositeElement root = new CompositeElement("Picture");

            root.Add(new PrimitiveElement("Red Line"));
            root.Add(new PrimitiveElement("Blue Circle"));
            root.Add(new PrimitiveElement("Green Box"));

            CompositeElement comp = new CompositeElement("Two Circles");

            comp.Add(new PrimitiveElement("Black Circle"));
            comp.Add(new PrimitiveElement("White Circle"));
            root.Add(comp);

            PrimitiveElement pe = new PrimitiveElement("Yellow Line");

            root.Add(pe);
            root.Remove(pe);

            root.Display(1);

            Console.WriteLine("\n******Observer******\n");
            IBM ibm = new IBM("IBM", 120.00);

            ibm.Attach(new Investor("Sorros"));
            ibm.Attach(new Investor("Berkshire"));

            ibm.Price = 120.10;
            ibm.Price = 121.00;
            ibm.Price = 120.50;
            ibm.Price = 120.75;

            Console.WriteLine("\n******Strategy******\n");
            SortedList studentRecords = new SortedList();

            studentRecords.Add("Samuel");
            studentRecords.Add("Jimmy");
            studentRecords.Add("Sandra");
            studentRecords.Add("Vivek");
            studentRecords.Add("Anna");

            studentRecords.SetSortStrategy(new QuickSort());
            studentRecords.Sort();

            studentRecords.SetSortStrategy(new ShellSort());
            studentRecords.Sort();

            studentRecords.SetSortStrategy(new MergeSort());
            studentRecords.Sort();

            /*
             * Console.WriteLine("\n******Template******\n");
             * DataAccessObject daoCategories = new Categories();
             * daoCategories.Run();
             *
             * DataAccessObject daoProducts = new Products();
             * daoProducts.Run();
             */

            Console.WriteLine("\n***Chain of Responsibility***\n");
            Approver larry = new Director();
            Approver sam   = new VicePresident();
            Approver tammy = new President();

            larry.SetSuccessor(sam);
            sam.SetSuccessor(tammy);

            Purchase p = new Purchase(2034, 350.00, "Assets");

            larry.ProcessRequest(p);

            p = new Purchase(2035, 32590.10, "Project X");
            larry.ProcessRequest(p);

            p = new Purchase(2036, 122100.00, "Project Y");
            larry.ProcessRequest(p);

            Console.WriteLine("\n******Command******\n");
            User user = new User();

            user.Compute('+', 100);
            user.Compute('-', 50);
            user.Compute('*', 10);
            user.Compute('/', 2);

            user.Undo(4);

            user.Redo(3);

            Console.ReadKey();
        }
Esempio n. 25
0
        static void Main(string[] args)
        {
            AbstractPlatform _platform = configurationPlatform();

            _platform.Paint();
            Console.WriteLine("===========================================================================");
            Console.WriteLine("================================== Stragery ===============================");
            var reports = new List <DeveloperReport>
            {
                new DeveloperReport {
                    Id = 1, Name = "Dev1", Level = DeveloperLevel.Senior, HourlyRate = 30.5, WorkingHours = 160
                },
                new DeveloperReport {
                    Id = 2, Name = "Dev2", Level = DeveloperLevel.Junior, HourlyRate = 20, WorkingHours = 120
                },
                new DeveloperReport {
                    Id = 3, Name = "Dev3", Level = DeveloperLevel.Senior, HourlyRate = 32.5, WorkingHours = 130
                },
                new DeveloperReport {
                    Id = 4, Name = "Dev4", Level = DeveloperLevel.Junior, HourlyRate = 24.5, WorkingHours = 140
                }
            };

            var calculatorContext = new SalaryCalculator(new JuniorDevSalaryCalculator());
            var juniorTotal       = calculatorContext.Calculate(reports);

            Console.WriteLine($"Total amount for junior salaries is: {juniorTotal}");

            calculatorContext.SetCalculator(new SeniorDevSalaryCalculator());
            var seniorTotal = calculatorContext.Calculate(reports);

            Console.WriteLine($"Total amount for senior salaries is: {seniorTotal}");

            Console.WriteLine($"Total cost for all the salaries is: {juniorTotal + seniorTotal}");

            Console.WriteLine("===========================================================================");
            Console.WriteLine("================================== IoC ===============================");
            BussinessLogic _bussinessLogic = new BussinessLogic();

            _bussinessLogic.Task1();

            Console.WriteLine("===========================================================================");
            Console.WriteLine("================================== Flyweight ===============================");

            // The client code usually creates a bunch of pre-populated
            // flyweights in the initialization stage of the application.
            var factory = new FlyweightFactory(
                new Car {
                Company = "Chevrolet", Model = "Camaro2018", Color = "pink"
            },
                new Car {
                Company = "Mercedes Benz", Model = "C300", Color = "black"
            },
                new Car {
                Company = "Mercedes Benz", Model = "C500", Color = "red"
            },
                new Car {
                Company = "BMW", Model = "M5", Color = "red"
            },
                new Car {
                Company = "BMW", Model = "X6", Color = "white"
            }
                );

            factory.listFlyweights();

            addCarToPoliceDatabase(factory, new Car
            {
                Number  = "CL234IR",
                Owner   = "James Doe",
                Company = "BMW",
                Model   = "M5",
                Color   = "red"
            });

            addCarToPoliceDatabase(factory, new Car
            {
                Number  = "CL234IR",
                Owner   = "James Doe",
                Company = "BMW",
                Model   = "X1",
                Color   = "red"
            });

            factory.listFlyweights();

            Console.WriteLine("===========================================================================");
            Console.WriteLine("================================== Proxy ===============================");

            MathProxy _mathProxy = new MathProxy();

            Console.Write("Input num1 and num2: ");
            var x = Convert.ToDouble(Console.ReadLine());
            var y = Convert.ToDouble(Console.ReadLine());

            Console.WriteLine($"{x} + {y} = {_mathProxy.Add(x, y)}");
            Console.WriteLine($"{x} - {y} = {_mathProxy.Sub(x, y)}");
            Console.WriteLine($"{x} * {y} = {_mathProxy.Mul(x, y)}");
            Console.WriteLine($"{x} / {y} = {_mathProxy.Div(x, y)}");

            Console.WriteLine("===========================================================================");
            Console.WriteLine("================================== ProxyWithBank ===============================");

            Credit _credit = new Credit();
            bool   Income  = false;

            _credit.Cash(400, ref Income);

            Income = true;
            Console.WriteLine($"Income {_credit.Cash(5000000.0, ref Income)} vnd");

            Income = false;
            Console.WriteLine($"Outcome {_credit.Cash(100000.0, ref Income)} vnd");

            _credit.CheckAccount();

            Console.WriteLine("-------------------------------------------------------------------------------");
            Console.WriteLine("----------------------------------- Transfer ----------------------------------");
            Console.WriteLine("----------------------------------- Local -------------------------------------");
            Income = false;
            _credit.LocalTransfer(6000000.0, "VND", "01231111441", "8912121231", ref Income);

            Income = true;
            Console.WriteLine($" Income local: " +
                              $"{_credit.LocalTransfer(700000.0, "VND", "719273981723", "1125412311", ref Income)}");
            _credit.CheckAccount();

            Income = false;
            Console.WriteLine($" Outcome local: " +
                              $"{_credit.LocalTransfer(70000.0, "VND", "719273981723", "1125412311", ref Income)}");
            _credit.CheckAccount();
            Console.WriteLine("----------------------------------- Overcome ----------------------------------");
            Income = true;
            Console.WriteLine($"Income overcome: " +
                              $"{_credit.OvercomeTransfer(500, "USD", "VND", "113311131", "719273981723", ref Income)} VND");
            _credit.CheckAccount();

            Income = false;
            Console.WriteLine($"Outcome overcome TWD: " +
                              $"{_credit.OvercomeTransfer(5000000.0, "VND", "TWD", "719273981723", "115533315441", ref Income)} TWD");
            _credit.CheckAccount();

            Console.WriteLine("================================ CompositePattern =====================================");
            CompositePattern.IEmployee employee_0000 = new Cashier(0, "Thu Tran", 7000000);
            CompositePattern.IEmployee employee_0001 = new Cashier(1, "Khoi Nguyen", 7000000);
            CompositePattern.IEmployee employee_0010 = new BankManager(0, "Ning Chang", 9000000);

            employee_0010.Add(employee_0000);
            employee_0010.Add(employee_0001);
            employee_0010.Print();
            Console.WriteLine("===========================================================================");
            Console.WriteLine("================================== Stragery - Ver2 ===============================");
            SortedList _studentRecords = new SortedList();

            _studentRecords.Add("Samual");
            _studentRecords.Add("Jimmy");
            _studentRecords.Add("Sandra");
            _studentRecords.Add("Vivek");
            _studentRecords.Add("Anna");
            Console.WriteLine("------------------------------------------------------------------------------------");
            _studentRecords.SetSortStrategy(new QuickSort());
            _studentRecords.Sort();
            Console.WriteLine("------------------------------------------------------------------------------------");
            _studentRecords.SetSortStrategy(new ShellSort());
            _studentRecords.Sort();
            Console.WriteLine("------------------------------------------------------------------------------------");
            _studentRecords.SetSortStrategy(new MergeSort());
            _studentRecords.Sort();

            Console.WriteLine("===========================================================================");
            Console.WriteLine("================================== Decorator ===============================");
            Console.WriteLine("-------------------------------------------------------------------------------");
            Book _book0000 = new Book("Worley", "Inside ASP.NET", 10);

            _book0000.Display();
            Console.WriteLine("-------------------------------------------------------------------------------");
            Video _video0000 = new Video("Winifred Hervey", "Steve Harvey Show", 1, 512);

            _video0000.Display();
            Console.WriteLine("-------------------------------------------------------------------------------");
            Borrowable _borrower0000 = new Borrowable(_book0000);

            _borrower0000.BorrowItem("Khoi Nguyen Tan");
            _borrower0000.BorrowItem("Ning Chang");
            Borrowable _borrower0001 = new Borrowable(_video0000);

            _borrower0001.BorrowItem("Thu Tran");
            _borrower0001.BorrowItem("Nguyen Lam Bao Ngoc");

            _borrower0000.Display();
            _borrower0001.Display();

            AlertStateContext stateContext = new AlertStateContext();

            stateContext.alert();
            stateContext.alert();
            stateContext.SetState(new Silent());
            stateContext.alert();
            stateContext.alert();
            stateContext.alert();

            Console.WriteLine("===========================================================================");
            Console.WriteLine("================================== AbstractFactoryVer2 ===============================");
            Console.WriteLine("-------------------------------------------------------------------------------");

            ///client class
            AnimalWorld animalWorld = new AnimalWorld(new AmericaFactory());

            animalWorld.AnimalEatOthers();
            animalWorld = new AnimalWorld(new AfricaFactory());
            animalWorld.AnimalEatOthers();

            Console.WriteLine("===========================================================================");
            Console.WriteLine("================================== Template ===============================");
            Console.WriteLine("-------------------------------------------------------------------------------");

            Game game = new Cricket();

            game.Play();
            game = new Football();
            game.Play();

            DataAccessObject dataAccessObject = new Categories();

            dataAccessObject.Run();
            dataAccessObject = new Products();
            dataAccessObject.Run();

            Console.WriteLine("===========================================================================");
            Console.WriteLine("================================== Adapter ===============================");
            Console.WriteLine("-------------------------------------------------------------------------------");
            var xmlConverter = new XmlConverter();
            var adapter      = new XmlToJsonAdapter(xmlConverter);

            adapter.ConvertXMLToJson();

            Console.WriteLine("===========================================================================");
            Console.WriteLine("================================== Template Ver 3 ===============================");
            Console.WriteLine("-------------------------------------------------------------------------------");

            DAO @object = new Person();

            @object.Connect();
            @object.GetAll();
            @object.Process();
            @object.Disconnect();


            Console.WriteLine("===========================================================================");
            Console.WriteLine("================================== ChainOfReposibility ===============================");
            Console.WriteLine("-------------------------------------------------------------------------------");
            // Setup Chain of Responsibility

            Approver larry = new Director();
            Approver sam   = new VicePresident();
            Approver tammy = new President();

            larry.SetSuccessor(sam);
            sam.SetSuccessor(tammy);

            // Generate and process purchase requests

            Purchase p = new Purchase(2034, 350.00, "Assets");

            larry.ProcessRequest(p);

            p = new Purchase(2035, 32590.10, "Project X");
            larry.ProcessRequest(p);

            p = new Purchase(2036, 122100.00, "Project Y");
            larry.ProcessRequest(p);
        }
Esempio n. 26
0
 public void Initialize()
 {
     video           = new Video("Spielberg", "Jaws", 23, 92);
     borrowableVideo = new Borrowable(video);
     customer        = "Customer #1";
 }
Esempio n. 27
0
  public static void Main( string[] args )
  {
    // Create book and video and display
    Book book = new Book( "Schnell", "My Home", 10 );
    Video video = new Video( "Spielberg", 
                     "Schindler's list", 23, 60 );

    book.Display();
    video.Display();

    // Make video borrowable, then borrow and display
    Console.WriteLine( "\nVideo made borrowable:" );
    Borrowable borrowvideo = new Borrowable( video );
    borrowvideo.BorrowItem( "Cindy Lopez" );
    borrowvideo.BorrowItem( "Samuel King" );

    borrowvideo.Display();

  }