[实验任务一]:女娲造人
使用简单工厂模式模拟女娲(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-10-30 15:08
ME社长
阅读(
12)
评论()
收藏
举报