首页 > 其他分享 >软件设计实验4

软件设计实验4

时间:2022-10-08 21:44:33浏览次数:48  
标签:Woman maneat 软件设计 virtual public 实验 class Man

实验4:抽象工厂模式

[实验任务一]:人与肤色

源码:

#include<iostream>
using namespace std;
class Man;

class Woman;

class AbstractFactory{

public:

    virtual Man* createMan() = 0;

    virtual Woman* createWoman() = 0;

};
class Man

{

public:

    virtual void maneat() = 0;
};

class Woman
{

public:

    virtual void womaneat() = 0;

};

class YellowMan :public Man

{

public:

    void maneat() {

        cout << "Yellow man" << endl;

    }

};

class YellowWoman :public Woman

{

public:

    void womaneat() {

        cout << "Yellow woman" << endl;

    }

};

class BlackMan :public Man

{

public:

    void maneat() {

        cout << "Black man" << endl;

    }

};

class BlackWoman :public Woman

{

public:

    void womaneat() {

        cout << "Black woman" << endl;

    }

};



class WhiteMan :public Man

{

public:

    void maneat() {

        cout << "white man" << endl;

    }

};

class WhiteWoman :public Woman

{

public:

    void womaneat() {

        cout << "white woman" << endl;

    }

};





class YellowHumanFactory :public AbstractFactory

{

public:

    YellowMan* createMan(){

        return new YellowMan();

    }

    YellowWoman* createWoman(){

        return new YellowWoman();

    }

};

class BlackHumanFactory :public AbstractFactory

{

public:

    BlackMan* createMan(){

        return new BlackMan();

    }

    BlackWoman* createWoman(){

        return new BlackWoman();

    }

};



class WhiteHumanFactory :public AbstractFactory

{

public:

    WhiteMan* createMan(){

        return new WhiteMan();

    }

    WhiteWoman* createWoman(){

        return new WhiteWoman();

    }

};

class Client

{

public:

    AbstractFactory* abstractFactory;

    Man* man;

    Woman* woman;

    void excute(){

        for (int i = 0; i < 3; i++)

        {

            if (i==0)

                abstractFactory = new YellowHumanFactory();

            else if (i==1)

                abstractFactory = new WhiteHumanFactory();

            else

                abstractFactory = new BlackHumanFactory();


            man = abstractFactory->createMan();

            woman = abstractFactory->createWoman();

            man->maneat();

            woman->womaneat();

        }

    }



};


class _TCHAR;

int _tmain(int argc, _TCHAR* argv[])

{

    Client* client = new Client();

    client->excute();

    system("pause");

    return 0;

}

  

标签:Woman,maneat,软件设计,virtual,public,实验,class,Man
From: https://www.cnblogs.com/lyf3701/p/16770310.html

相关文章

  • 实验5:开源控制器实践——POX
    1.基本要求使用tcpdump验证Hub模块h1pingh2(h3和h2都能抓到包)h1pingh3(h3和h2都能抓到包)L2_learning模块代码流程图使用tcpdump验证Switch模块h1pingh2(h2......
  • 实验4:开源控制器实践——OpenDaylight
    (一)基本要求1.利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight控制器;2.Mininet中ping测试(二)进阶要求查找资料,整理和记录ODL控制器主要的RESTAPI文档,包......
  • 实验5:开源控制器实践——POX
    一、实验目的能够理解POX控制器的工作原理;通过验证POX的forwarding.hub和forwarding.l2_learning模块,初步掌握POX控制器的使用方法;能够运用POX控制器编写自定义网络......
  • 实验5:开源控制器实践——POX
    一、实验目的1.能够理解POX控制器的工作原理;2.通过验证POX的forwarding.hub和forwarding.l2_learning模块,初步掌握POX控制器的使用方法;3.能够运用POX控制器编写自定义......
  • 2022洛阳师范学院ACM实验室招新竞赛题解
    A萌新签到题目描述欢迎大家来参加2022洛阳师范学院ACM实验室新生赛,我们实验室全体学长学姐从暑假一直期盼着你们的到来。我们的小萌新那么可爱,学长学姐肯定不会为难大......
  • 实验3:OpenFlow协议分析实践
    实验3:OpenFlow协议分析实践一、实验目的能够运用wireshark对OpenFlow协议数据交互过程进行抓包;能够借助包解析工具,分析与解释OpenFlow协议的数据包交互过程与机制......
  • 实验2:Open vSwitch虚拟交换机实践、实验3:OpenFlow协议分析实践
    实验2:OpenvSwitch虚拟交换机实践一、实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通过Mininet的Pytho......
  • 实验4:开源控制器实践——OpenDaylight
    一、实验目的能够独立完成OpenDaylight控制器的安装配置;能够使用Postman工具调用OpenDaylightAPI接口下发流表。二、实验环境Ubuntu20.04Desktopamd64三、实验......
  • 实验5:开源控制器实践——POX
    一、实验目的1.能够理解POX控制器的工作原理;2.通过验证POX的forwarding.hub和forwarding.l2_learning模块,初步掌握POX控制器的使用方法;3.能够运用POX控制器编写自定义......
  • 实验4:开源控制器实践——OpenDaylight
    一、基本要求1.利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight控制器;2.通过Postman工具调用OpenDaylight提供的API下发流表,实现拓扑内主机h1和h3网络中断10s。......