• 简单工厂模式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 }

      

  • 相关阅读:
    ASP.Net请求处理机制初步探索之旅
    ASP.Net请求处理机制初步探索之旅
    ASP.Net请求处理机制初步探索之旅
    NET平台处理HTTP请求
    HTTP.SYS
    ASP.NET页面与IIS底层交互和工作原理
    MUI的一些笔记
    SpringMCV跨域
    servlet跨域
    Git
  • 原文地址:https://www.cnblogs.com/gdp176119/p/5956488.html
Copyright © 2020-2023  润新知