ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

抽象工厂模式---人与肤色

2021-11-09 20:00:21  阅读:198  来源: 互联网

标签:play void class --- 抽象 Man 肤色 public Women


今天做了抽象工厂模式--人与肤色的实验,最终成功运行成功人与肤色的代码;

下面是操作流程和步骤:

[实验任务一]:人与肤色

使用抽象工厂模式,完成下述产品等级结构:

 

 

 

实验要求:

1. 画出对应的类图;

 

 

 

2.提交源代码;

 

Java:

public class BlackFactory implements MWFactory

{

 public Man produceMan()

 {

  return new BlackSkinMan();

 }

 

 public Women produceWomen()

 {

  return new BlackSkinWomen();

 }

}

public class BlackSkinMan implements Man

{

 public void play()

 {

  System.out.println("我是黑种男人!");

 }

}

public class BlackSkinWomen implements Women

{

 public void play()

 {

  System.out.println("我是黑种女人!");

 }

}

public class Client

{

 public static void main(String args[])

 {

         try

         {

          MWFactory factory;

          Man m;

          Women w;

          factory=(MWFactory)XMLUtil.getBean();

          m=factory.produceMan();

          m.play();

          w=factory.produceWomen();

          w.play();

         }

         catch(Exception e)

         {

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

         }

 }

}

public interface Man

{

 public void play();

}

public interface MWFactory

{

 public Man produceMan();

 public Women produceWomen();

}

public class WhiteFactory implements MWFactory

{

 public Man produceMan()

 {

  return new WhiteSkinMan();

 }

 

 public Women produceWomen()

 {

  return new WhiteSkinWomen();

 }

}

public class WhiteSkinMan implements Man

{

 public void play()

 {

  System.out.println("我是白种男人!");

 }

}

public class WhiteSkinWomen implements Women{

  public void play()

  {

   System.out.println("我是白种女人!");

  } 

}

public interface Women

{

 public void play();

}

import javax.xml.parsers.*;

import org.w3c.dom.*;

import org.xml.sax.SAXException;

import java.io.*;

public class XMLUtil

{

//该方法用于从XML配置文件中提取具体类类名,并返回一个实例对象

 public static Object getBean()

 {

  try

  {

   //创建文档对象

   DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();

   DocumentBuilder builder = dFactory.newDocumentBuilder();

   Document doc;       

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

  

   //获取包含类名的文本节点

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

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

            String cName=classNode.getNodeValue();

            

            //通过类名生成实例对象并将其返回

            Class c=Class.forName(cName);

        Object obj=c.newInstance();

            return obj;

           }   

            catch(Exception e)

            {

             e.printStackTrace();

             return null;

            }

  }

}

public class YellowFactory implements MWFactory

{

 public Man produceMan()

 {

  return new YellowSkinMan();

 }

 public Women produceWomen()

 {

  return new YellowSkinWomen();

 }

}

public class YellowSkinMan implements Man

{

 public void play()

 {

  System.out.println("我是黄种男人!");

 }

}

public class YellowSkinWomen implements Women{

 public void play()

 {

  System.out.println("我是黄种女人!");

 }

 运行截图:

 

标签:play,void,class,---,抽象,Man,肤色,public,Women
来源: https://www.cnblogs.com/092e/p/15530633.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有