zoukankan      html  css  js  c++  java
  • 每日博客

    简单工厂模式

    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

    1、理解简单工厂模式的动机,掌握该模式的结构;

    2、能够利用简单工厂模式解决实际问题。

     

    [实验任务一]:女娲造人

    使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数M,则返回一个Man对象,如果传入参数W,则返回一个Woman对象,如果传入参数R,则返回一个Robot对象。请用程序设计实现上述场景。

    C++版

    #include <iostream>
    #include <string>
    using namespace std;

    class Person{
    protected:string sex;
    public:
    virtual void setsex(){};
    virtual string getsex(){return sex;}
    };
    class Man:public Person
    {
    public:
    virtual void setsex(){sex="男人";}
    virtual string getset(){return sex;}
    };
    class Woman:public Person
    {
    public:
    virtual void setsex(){sex="女人";}
    virtual string getsex(){return sex;}
    };
    class Robot:public Person
    {
    public:
    virtual void setsex(){sex="机器人";}
    virtual string getsex(){return sex;}
    };
    class Factory
    {
    public:
    static Person*produce(char c)
    {
    switch(c)
    {
    case 'M':
    {
    Person*pro=new Man();
    break;
    }
    case 'W':
    {
    Person*pro=new Woman();
    break;
    }
    case 'R':
    {
    Person*pro=new Robot();
    break;
    }
    }
    }
    };
    main()
    {
    Person*pro1;
    pro1=Factory::produce('M');
    pro1->setsex();
    string result1=pro1->getsex();
    cout<<"女娲造"<<result1<<endl;
    Person*pro2;
    pro2=Factory::produce('W');
    pro2->setsex();
    string result2=pro2->getsex();
    cout<<"女娲造"<<result2<<endl;
    Person*pro3;
    pro3=Factory::produce('R');
    pro3->setsex();
    string result3=pro3->getsex();
    cout<<"女娲造"<<result3<<endl;
    }

  • 相关阅读:
    string
    auto和decltype
    const限定符
    &(引用) 和 *(指针)
    extern关键字
    关于将函数写入头文件问题(分离式编译)
    poj2154(polya定理+欧拉函数)
    bzoj2115(线性基)
    51nod1832(二叉树/高精度模板+dfs)
    51nod1464(trie + dfs)
  • 原文地址:https://www.cnblogs.com/hfy717/p/15583163.html
Copyright © 2011-2022 走看看