Example #1
0
        static void Main(string[] args)
        {
            //Singleton Pattern Example
            //Parallel.Invoke(() => CreateStudent(), () => CreateEmployee());

            ////Factory Pattern Example
            //Employee e1 = new Employee { Id = 1, Name = "Aniket", Department = "IT", EmployeeType = "Permanent" };
            //Employee e2 = new Employee { Id = 1, Name = "Aniket", Department = "IT", EmployeeType = "Contract" };

            //BaseEmployeeFactory empFactory1 = new EmployeeFactory().CreateFactory(e1);
            //empFactory1.ApplySalary();
            //BaseEmployeeFactory empFactory2 = new EmployeeFactory().CreateFactory(e2);
            //empFactory2.ApplySalary();

            //Console.WriteLine("Employee {0} has salary {1} and bonus {2} and HRA {3}", e1.Name, e1.Salary, e1.Bonus, e1.HRA);
            //Console.WriteLine("Employee {0} has salary {1} and bonus {2} and Medical {3}", e2.Name, e2.Salary, e2.Bonus, e2.MedicalAllowance);

            //Console.ReadLine();

            IRobotBuilder robotBuilder  = new OldRobotBuilder();
            RobotEngineer robotEngineer = new RobotEngineer(robotBuilder);

            robotEngineer.MakeRobot();
            Robot robot = robotEngineer.GetRobot();

            Console.WriteLine("Robot has arms: {0}", robot.Arms);
            Console.ReadKey();
        }
Example #2
0
        public static void Run()
        {
            IRobotBuilder armyBuilder       = new ArmyRobotBuilder();
            IRobotBuilder homeKeeperBuilder = new HomeKeeperRootBuilder();

            RobotEngineer engineer = new RobotEngineer(homeKeeperBuilder);

            var robot = engineer.ReadyRobot;
        }
Example #3
0
        static void Main(string[] args)
        {
            IRobotBuilder oldStyleRobot = new RobotBuilder();
            RobotEngineer robotEngineer = new RobotEngineer(oldStyleRobot);

            robotEngineer.BuildRobot();
            var robot = robotEngineer.GetRobot();

            Console.WriteLine($"Your robot has been built with the following specs.\nHead: {robot.RobotHead}\nTorso: {robot.RobotTorso}\nArms: {robot.RobotArms}\nLegs: {robot.RobotLegs}");
            Console.ReadLine();
        }
Example #4
0
        public static void Main(string[] args)
        {
            OldRobotBuilder oldStyleRobot = new OldRobotBuilder();
            RobotEngineer   robotEngineer = new RobotEngineer(oldStyleRobot);

            robotEngineer.MakeRobot();

            Robot firstRobot = robotEngineer.GetRobot();

            Console.WriteLine(firstRobot.getRobotHead());
            Console.WriteLine(firstRobot.getRobotArms());
            Console.WriteLine(firstRobot.getRobotTorso());
            Console.WriteLine(firstRobot.getRobotLegs());
        }
        public void RobotHasTheElementsThatItWasGivenByEngineer()
        {
            var eng = new RobotEngineer()
                      .WithBuilder(new RobotBuilder())
                      .CreateProduct();
            var robotStr = (eng as Robot)?.GetRobotElements()
                           .Stringify();
            var robotStrShouldEquals = new List <string>()
            {
                "Steel head", "Steel arm", "Steel arm", "Steel platform"
            }
            .Stringify();

            Assert.AreEqual(robotStr, robotStrShouldEquals);
        }
        public ActionResult Index()
        {
            #region Singleton
            Singleton.getInstance().userID   = "180001";
            Singleton.getInstance().userPwd  = "Pwd18001";
            Singleton.getInstance().userName = "******";
            string userID   = Singleton.getInstance().userID;
            string userPwd  = Singleton.getInstance().userPwd;
            string userName = Singleton.getInstance().userName;
            #endregion

            #region Facade
            BankAccountFacade accessingBank = new BankAccountFacade(12345678, 1234);
            string            ResultFacade  = string.Empty;

            ResultFacade += accessingBank.withdrawCash(50.00);

            ResultFacade += accessingBank.withdrawCash(900.00);

            ResultFacade += accessingBank.depositCash(200.00);
            #endregion

            #region Factory Method

            EnemyShipFactory shipFactory = new EnemyShipFactory();
            EnemyShip        theEnemy    = null;
            theEnemy = shipFactory.makeEnemyShip("B");
            string resultFac = doStuffEnemy(theEnemy);


            #endregion

            #region Abstract Factory

            string resultAbstractFac = AbstractFactory.MainFn();

            #endregion

            #region Builder

            RobotBuilder  oldStyleRobot = new OldRobotBuilder();
            RobotEngineer robotEngineer = new RobotEngineer(oldStyleRobot);
            robotEngineer.makeRobot();
            Robot  firstRobot    = robotEngineer.getRobot();
            string resultBuilder = string.Empty;
            resultBuilder += firstRobot.getRobotHead() + "\n";
            resultBuilder += firstRobot.getRobotTorso() + "\n";
            resultBuilder += firstRobot.getRobotArms() + "\n";
            resultBuilder += firstRobot.getRobotLegs() + "\n";

            RobotBuilder  newStyleRobot    = new NewRobotBuilder();
            RobotEngineer robotEngineerNew = new RobotEngineer(newStyleRobot);
            robotEngineerNew.makeRobot();
            Robot  secondRobot      = robotEngineerNew.getRobot();
            string resultBuilderNew = string.Empty;
            resultBuilderNew += secondRobot.getRobotHead() + "\n";
            resultBuilderNew += secondRobot.getRobotTorso() + "\n";
            resultBuilderNew += secondRobot.getRobotArms() + "\n";
            resultBuilderNew += secondRobot.getRobotLegs() + "\n";
            #endregion

            #region State

            #endregion



            ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application. <br />User ID : "
                              + userID + " <br />User Pwd : " + userPwd + " <br />User Name : " + userName;

            return(View());
        }