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;
    }

  • 相关阅读:
    windbg条件断点总结
    使用openssl命令剖析RSA私钥文件格式
    RSA读取密钥——使用openssl编程
    OPENSSL中RSA私钥文件(PEM格式)解析【一】
    电商系统架构——系统鸟瞰图
    构建高并发高可用的电商平台架构实践
    一些PHP性能的优化
    CentOS的Gearman安装
    php安装gearman扩展实现异步分步式任务
    使用 Gearman 实现分布式处理
  • 原文地址:https://www.cnblogs.com/hfy717/p/15583163.html
Copyright © 2011-2022 走看看