zoukankan      html  css  js  c++  java
  • 简单工厂模式——女娲造人

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

    2、类图:

    3、代码:

    1、抽象产品类–人类:

    package tutorial2;

    public abstract class Person {

    public void live() {

    }

    public void play() {

    }

    }

    2、具体产品类–男人类:

    package tutorial2;

    public class Man extends Person {

    @Override

    public void live() {

    System.out.println("女娲造人————男人");

            super.live();

    }

    public void play() {

    System.out.println("男人玩耍中.....");

            super.play();

    }

    }

    3、具体产品类–女人类:

    package tutorial2;

    public class Woman extends Person {

    @Override

    public void live() {

    System.out.println("女娲造人————女人");

            super.live();

    }

    public void play() {

    System.out.println("女人玩耍中.....");

            super.play();

    }

    }

    4、具体产品类–机器人类:

    package tutorial2;

    public class Robot extends Person{

    @Override

    public void live() {

    System.out.println("女娲造人————机器人");

            super.live();

    }

    public void play() {

    System.out.println("机器人玩耍中.....");

            super.play();

    }

    }

    5、工厂类–女娲类:

    package tutorial2;

    public class NvWa {

    public static Person getPerson(String people){

        Person person=null ;

        

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

            person = new Man();

        }else if(people.equalsIgnoreCase("W")){

            person = new Woman();

        }else if(people.equalsIgnoreCase("R")){

            person = new Robot();

        }

        return person;

    }

    }

    6、女娲造人的测试:

    package tutorial2;

    public class NvWaMakePeople {

        public static void main(String[] args) {

            Person Person;

            Person = NvWa.getPerson("M");  //女娲造男人

            Person.live();

            Person.play();

            System.out.println("**********************");

            Person = NvWa.getPerson("W"); //女娲造女人

            Person.live();

            Person.play();

            System.out.println("**********************");

            Person = NvWa.getPerson("R"); //女娲造机器人

            Person.live();  

            Person.play();

        }

    }

     4、结果

  • 相关阅读:
    植物-常见植物:苍耳草
    Linux 服务的加入删除,自己主动执行及状态
    HTML标签列表
    cocos2d js ClippingNode 制作标题闪亮特效
    被AppStore拒绝理由(一)
    開始学习hadoop
    改动mysqlpassword
    hdu 1874 畅通project续
    发现百度开源一个好东西,Echarts统计报表前段框架
    一个基于cocos2d-x 3.0和Box2d的demo小程序
  • 原文地址:https://www.cnblogs.com/Lizhichengweidashen/p/15322246.html
Copyright © 2011-2022 走看看