11.1每日总结

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

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

实验要求:

1.画出对应的类图;

2.提交源代码;

3.注意编程规范。

 

 

 

People.java

package AA;

 

public class people {

    public static void main(String [] args)

    {

         try

         {

             NvWa nvwa;

             String brandName=XMLUtilTV.getBrandName();

             nvwa=PeopleFactory.producePeople(brandName);

             nvwa.play();

         }

         catch(Exception e)

         {

             System.out.println(e.getMessage());

         }

    }

 

}

NvWa.java

    package AA;

 

public interface NvWa {

    public void play();

}

XMLUtilTV.java

package AA;

import javax.xml.parsers.*;

import org.w3c.dom.*;

import org.xml.sax.SAXException;

import java.io.*;

public class XMLUtilTV {

      //该方法用于从XML配置文件中提取品牌名称,并返回该品牌名称

        public static String getBrandName()

        {

            try

            {

                //创建文档对象

                DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();

                DocumentBuilder builder = dFactory.newDocumentBuilder();

                Document doc;

                doc = builder.parse(new File("congfilePeople.xml"));

 

                //获取包含品牌名称的文本节点

                NodeList nl = doc.getElementsByTagName("brandName");

                Node classNode=nl.item(0).getFirstChild();

                String brandName=classNode.getNodeValue().trim();

                return brandName;

               }

                   catch(Exception e)

                   {

                       e.printStackTrace();

                       return null;

                   }

            }

}

R.java

 

    package AA;

 

public class R implements NvWa {

    public void play()

    {

        System.out.println("机器人创造中......");

    }

 

}

 

W.java

    package AA;

 

public class W implements NvWa{

    public void play()

    {

        System.out.println("女人创造中......");

    }

}

 

M.java

   package AA;

 

public  class M implements NvWa

{

    public void play()

    {

        System.out.println("男人创造中......");

    }

}

 

PeopleFactory.java

package AA;

 

public class PeopleFactory {

    public static NvWa producePeople(String brand) throws Exception

    {

        if(brand.equalsIgnoreCase("M"))

        {

            System.out.println("女娲再创造男人!");

            return new M();

        }

        else if(brand.equalsIgnoreCase("W"))

        {

            System.out.println("女娲再创造女人!");

            return new W();

        }

        else if(brand.equalsIgnoreCase("R"))

        {

            System.out.println("女娲再创造机器人!");

            return new R();

        }

        else

        {

            throw new Exception("对不起,我还是一块泥巴!");

        }

    }

 

}

 

 

posted @ 2023-11-01 21:04  ME社长  阅读(20)  评论(0)    收藏  举报