Example #1
0
        public void problem1()
        {
            AbstractClassRoomUserFactory factory = new OrdinaryClassRoomUserFactory();
            IClassRoomUser student = factory.createStudent();

            IUserIdentity idCard = new OrdinaryIdCard("987231");

            student.SetIdentity(idCard);

            idCard = new InternationalIdCard("1234567");
            student.SetIdentity(idCard); // <- without Compile-time Error
        }
        public void doExit(string arg0, string arg1)
        {
            AbstractClassRoomUserFactory factory = new OrdinaryClassRoomUserFactory();

            if (arg0 == "International")
            {
                factory = new InternationalClassRoomUserFactory();
            }

            IClassRoomUser person = factory.createClassRoomUser(arg1);

            person.Exit();
        }