zoukankan      html  css  js  c++  java
  • 简单工厂模式01

    女娲造人

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

     (1)类图

    (2)源代码:

      1  2.1 People.java
      2 package AA;
      3 
      4 public class people {
      5     public static void main(String [] args)
      6     {
      7          try
      8          {
      9              NvWa nvwa;
     10              String brandName=XMLUtilTV.getBrandName();
     11              nvwa=PeopleFactory.producePeople(brandName);
     12              nvwa.play();
     13          }
     14          catch(Exception e)
     15          {
     16              System.out.println(e.getMessage());
     17          }
     18     }
     19 
     20 }
     21   2.2 NvWa.java
     22     package AA;
     23 
     24 public interface NvWa {
     25     public void play();
     26 }
     27 2.3 XMLUtilTV.java
     28 package AA;
     29 import javax.xml.parsers.*;
     30 import org.w3c.dom.*;
     31 import org.xml.sax.SAXException;
     32 import java.io.*;
     33 public class XMLUtilTV {
     34       //该方法用于从XML配置文件中提取品牌名称,并返回该品牌名称
     35         public static String getBrandName()
     36         {
     37             try
     38             {
     39                 //创建文档对象
     40                 DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();
     41                 DocumentBuilder builder = dFactory.newDocumentBuilder();
     42                 Document doc;                            
     43                 doc = builder.parse(new File("congfilePeople.xml")); 
     44             
     45                 //获取包含品牌名称的文本节点
     46                 NodeList nl = doc.getElementsByTagName("brandName");
     47                 Node classNode=nl.item(0).getFirstChild();
     48                 String brandName=classNode.getNodeValue().trim();
     49                 return brandName;
     50                }   
     51                    catch(Exception e)
     52                    {
     53                        e.printStackTrace();
     54                        return null;
     55                    }
     56             }
     57 }
     58 2.4R.java
     59 
     60     package AA;
     61 
     62 public class R implements NvWa {
     63     public void play()
     64     {
     65         System.out.println("机器人创造中......");
     66     }    
     67 
     68 }
     69 
     70 2.5W.java
     71     package AA;
     72 
     73 public class W implements NvWa{
     74     public void play()
     75     {
     76         System.out.println("女人创造中......");
     77     }    
     78 }
     79 
     80 2.6M.java
     81    package AA;
     82 
     83 public  class M implements NvWa
     84 {
     85     public void play()
     86     {
     87         System.out.println("男人创造中......");
     88     }    
     89 }
     90 
     91 2.7PeopleFactory.java
     92 package AA;
     93 
     94 public class PeopleFactory {
     95     public static NvWa producePeople(String brand) throws Exception
     96     {
     97         if(brand.equalsIgnoreCase("M"))
     98         {
     99             System.out.println("女娲再创造男人!");
    100             return new M();
    101         }
    102         else if(brand.equalsIgnoreCase("W"))
    103         {
    104             System.out.println("女娲再创造女人!");
    105             return new W();
    106         }
    107         else if(brand.equalsIgnoreCase("R"))
    108         {
    109             System.out.println("女娲再创造机器人!");
    110             return new R();
    111         }
    112         else
    113         {
    114             throw new Exception("对不起,我还是一块泥巴!");
    115         }
    116     }
    117 
    118 }

      

  • 相关阅读:
    linux内核主要模块图
    进程的用户栈和内核栈
    Linux0.11内核几种地址(逻辑地址、线性地址、物理地址)的含义
    实模式与保护模式
    Linux多线程与同步
    java+selenium——鼠标左击
    java+selenium——键盘操作+复制粘贴(keys类)
    java+selenium——语法简介
    java+selenium——鼠标悬停从一个位置移动到另外一个位置
    java+selenium——简单截图+保存在java工程目录下=====简单截图+时间+保存在java工程目录下
  • 原文地址:https://www.cnblogs.com/gdp176119/p/5956488.html
Copyright © 2011-2022 走看看