public void ArtistCreationWithConcreteFactory2()
        {
            AbstractFactory factory = ConcreteFactory2.GetFactory();
            IPerson         x       = factory.CreateArtist();

            Assert.AreSame(x.GetType(), typeof(Dancer));
        }
        public void DoctorCreationWithConcreteFactory2()
        {
            AbstractFactory factory = ConcreteFactory2.GetFactory();
            IPerson         x       = factory.CreateDoctor();

            Assert.AreSame(x.GetType(), typeof(Dentist));
        }
        public void TeacherCreationWithConcreteFactory2()
        {
            AbstractFactory factory = ConcreteFactory2.GetFactory();
            IPerson         x       = factory.CreateTeacher();

            Assert.AreSame(x.GetType(), typeof(MathTeacher));
        }
        public void TeacherCreationTestWithReflectionConcreteFactory2()
        {
            AbstractFactory factory = ConcreteFactory2.GetFactory();
            IPerson         x       = factory.CreatePerson <MathTeacher>();

            Assert.AreSame(x.GetType(), typeof(MathTeacher));
        }