zoukankan      html  css  js  c++  java
  • 简单Factory模式

    #pragma once
    #include "student.h"
    #include "Teacher.h"
    
    typedef enum _EPersonType{
        ePersonUndefin = 0,
        ePersonStudent,
        ePersonTeacher
    }EPersonType;
    
    class Factory
    {
    public:
        Factory(void);
        ~Factory(void);
        Person *CreatPerson(EPersonType personType);
    };
    
    
    Person* Factory::CreatPerson(EPersonType personType){
        Person *pPerson = 0;
        switch (personType)
        {
        case ePersonStudent:
            {
                pPerson = new Student();
                break;
            }
        case ePersonTeacher:
            {
                pPerson = new Teacher();
                break;
            }
        }
        return pPerson;
    }
    
    #pragma once
    #include <iostream>
    using namespace std;
    class Person
    {
    public:
        Person(void);
        virtual ~Person(void);
    };
    
    #include "Person.h"
    Person::Person(void)
    {
    }
    
    Person::~Person(void)
    {
    }
    
    #pragma once
    #include "person.h"
    class Student :
        public Person
    {
    public:
        Student(void);
        ~Student(void);
    };
    
    #include "Student.h"
    Student::Student(void)
    {
        cout<<"Student::Student()"<<endl;
    }
    
    #pragma once
    #include "person.h"
    class Teacher :
        public Person
    {
    public:
        Teacher(void);
        ~Teacher(void);
    };
    
    #include "Teacher.h"
    Teacher::Teacher(void)
    {
        cout<<"Teacher::Teacher()"<<endl;
    }
    
    #include "Factory.h"
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        Factory factory;
        factory.CreatPerson(ePersonStudent);//ePersonTeacher
        return 0;
    }
  • 相关阅读:
    通过结构体某个成员的地址计算结构体首地址 (转)
    2019.9.2课程设计报告
    2019.9.1课程设计报告
    2019.8.31课程设计报告
    2019.8.30课程设计报告
    2019.8.29课程设计报告
    2019.8.28课程设计报告
    2019.8.27课程设计报告
    2019.8.26课程设计报告
    2019.8.25课程设计报告
  • 原文地址:https://www.cnblogs.com/zhidao-chen/p/3838157.html
Copyright © 2011-2022 走看看