• 简单工厂模式女娲造人


    今天做了简单工厂模式的实验,下面是实验过程和步骤:

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

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

    实验要求:

    1. 画出对应的类图;

    2. 提交源代码;

    Java部分:

    package Factory;

     

    public interface Nvwa {

    public void create();

    }

     

    package Factory;

     

    public class Man implements Nvwa{

    public void create() {

    System.out.println("制造了男性");

    }

     

    }

     

    package Factory;

     

    public class Woman implements Nvwa{

    public void create() {

    System.out.println("制造了女性");

    }

     

    }

     

    package Factory;

     

    public class Robot implements Nvwa{

    public void create() {

    System.out.println("制造了机器人");

    }

     

    }

     

     

    package Factory;

     

    public class play {

    public static Nvwa getperson(String arg) {

    Nvwa nvwa=null;

    if(arg.equalsIgnoreCase("M")) {

    nvwa=new Man();

    System.out.println("女娲要制造男性了");

     

    }

    else if(arg.equalsIgnoreCase("W")) {

    nvwa=new Woman();

    System.out.println("女娲要制造女性了");

    }

    else if(arg.equalsIgnoreCase("R")) {

    nvwa=new Robot();

    System.out.println("女娲要制造机器人了");

    }

    return nvwa;

    }

    }

    package Factory;

     

    public class Client {

    public static void main(String[] args) {

    Nvwa N;

    N=play.getperson("R");

    N.create();

    }

    }

    C++部分:

    #include<iostream>

    #include<string>

    using namespace std;

    class Nvwa{

    public :

    virtual void create() = 0;

    };

    class Man : public Nvwa{

    public :

    void create(){

    cout<<"制造了男性"<<endl;

    }

    };

    class Woman : public Nvwa{

    public :

    void create() {

    cout<<"制造了女性"<<endl;

    }

    };

    class Robot : public Nvwa{

    public :

    void create() {

    cout<<"制造了机器人"<<endl;

    }

    };

    class play{

    public :

    static void getperson(string arg) {

    Nvwa *nvwa;

    if(arg=="M") {

    nvwa=new Man();

    cout<<"女娲要制造男性了"<<endl;

    }

    else if(arg=="W") {

    nvwa=new Woman();

    cout<<"女娲要制造女性了"<<endl;

    }

    else if(arg=="R") {

    nvwa=new Robot();

    cout<<"女娲要制造机器人了"<<endl;

    }

    nvwa->create();

    }

    };

    int main(){

    play a;

    a.getperson("W");

    return 0;

    }

    截图:

  • 相关阅读:
    跨域通信
    Http协议-报文
    从快递公司作业模式看网络通信
    xx.exe 中的 0x7c92e4df 处最可能的异常: 0xC0000008: An invalid handle was specified
    [wp8游戏] cocos2d-x v2.2 + VS2013 环境搭建
    wp加载本地HTML(附带图片,CSS,JS)
    谈谈.NET程序集(一)
    [读书心得] .NET中 类型,对象,线程栈,托管堆在运行时的关系
    矩估计与最大似然估计
    WP8开发札记(二)让程序支持锁屏运行
  • 原文地址:https://www.cnblogs.com/092e/p/15530588.html
Copyright © 2020-2023  润新知