예제 #1
0
        public void doJoinAndExit(string arg)
        {
            IClassRoomUser person = factory.createClassRoomUser(arg);

            person.Join();
            person.Exit();
        }
예제 #2
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();
        }
        public override IClassRoomUser createClassRoomUser(string args)
        {
            IClassRoomUser ret = null;

            if (args == "student")
            {
                ret = new OrdinaryStudent();
            }
            else if (args == "teacher")
            {
                ret = new OrdinaryTeacher();
            }
            else if (args == "parent")
            {
                ret = new OrdinaryParent();
            }
            return(ret);
        }
        public override IClassRoomUser createClassRoomUser(string args)
        {
            IClassRoomUser ret = null;

            if (args == "student")
            {
                ret = new InternationalStudent();
            }
            else if (args == "teacher")
            {
                ret = new InternationalTeacher();
            }
            else if (args == "parent")
            {
                ret = new InternationalParent();
            }
            return(ret);
        }