标签:java package a004 模式 --- Override com public
一、题目要求
二、画出对应的类图
三、文件目录结构
四、具体实现代码
Black.java
1 package com.a004; 2 3 public class Black implements Color{ 4 @Override 5 public Man produceMan() { 6 return new BlackMan(); 7 } 8 9 @Override 10 public Woman produceWoman() { 11 return new BlackWoman(); 12 } 13 }
BlackMan.java
1 package com.a004; 2 3 public class BlackMan implements Man{ 4 @Override 5 public void play(){ 6 System.out.println("我是黑种男人!"); 7 } 8 }
BlackWoman.java
1 package com.a004; 2 3 public class BlackWoman implements Woman { 4 5 @Override 6 public void play() { 7 System.out.println("我是黑种女人!"); 8 } 9 }
Color.java
1 package com.a004; 2 3 public interface Color { 4 public Man produceMan(); 5 public Woman produceWoman(); 6 }
Yellow.java
1 package com.a004; 2 3 public class Yellow implements Color{ 4 @Override 5 public Man produceMan() { 6 return new YellowMan(); 7 } 8 9 @Override 10 public Woman produceWoman() { 11 return new YellowWoman(); 12 } 13 }
White.java
1 package com.a004; 2 3 public class White implements Color { 4 @Override 5 public Man produceMan() { 6 return new WhiteMan(); 7 } 8 9 @Override 10 public Woman produceWoman() { 11 return new WhiteWoman(); 12 } 13 }
Man.java
1 package com.a004; 2 3 public interface Man { 4 public void play(); 5 }
WhiteMan.java
1 package com.a004; 2 3 public class WhiteMan implements Man { 4 @Override 5 public void play() { 6 System.out.println("我是白种男人!"); 7 } 8 }
YellowMan.java
1 package com.a004; 2 3 public class YellowMan implements Man{ 4 @Override 5 public void play() { 6 System.out.println("我是黄种男人!"); 7 } 8 }
Woman.java
1 package com.a004; 2 3 public interface Woman { 4 5 public void play() ; 6 }
WhiteWoman.java
1 package com.a004; 2 3 public class WhiteWoman implements Woman { 4 @Override 5 public void play() { 6 System.out.println("我是白种女人!"); 7 } 8 }
YellowWoman.java
1 package com.a004; 2 3 public class YellowWoman implements Woman { 4 @Override 5 public void play() { 6 System.out.println("我是黄种女人!"); 7 } 8 }
五、测试代码以及配置代码
XMLUtil.java
1 package com.a004; 2 import javax.xml.parsers.*; 3 import org.w3c.dom.*; 4 import org.xml.sax.SAXException; 5 import java.io.File; 6 public class XMLUtil { 7 public static Object getBean() { 8 try { 9 //创建DOM文档对象 10 DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance(); 11 DocumentBuilder builder = dFactory.newDocumentBuilder(); 12 Document doc; 13 doc = builder.parse(new File("config.xml")); 14 //获取包含类名的文本节点 15 NodeList nl = doc.getElementsByTagName("className"); 16 Node classNode = nl.item(0).getFirstChild(); 17 String cName = classNode.getNodeValue(); 18 System.out.println("类名: "+ cName); //输出类名 19 //通过类名生成实例对象返回 20 21 Object obj = null; 22 try { 23 Class c =Class.forName("com.a004."+cName); 24 obj = c.newInstance(); 25 } catch (ClassNotFoundException e) { 26 System.out.println("ClassNotFoundException"); 27 e.printStackTrace(); 28 } catch (InstantiationException e) { 29 System.out.println("InstantiationException"); 30 e.printStackTrace(); 31 } catch (IllegalAccessException e) { 32 System.out.println("IllegalAccessException"); 33 e.printStackTrace(); 34 } 35 return obj; 36 } catch (Exception e) { 37 e.printStackTrace(); 38 return null; 39 } 40 } 41 }
config.xml
1 <?xml version = "1.0"?> 2 <config> 3 <className>Black</className> 4 </config>
Client.java
1 package com.a004; 2 public class Client { 3 public static void main(String[] args) { 4 Color color; 5 Man man; 6 Woman woman; 7 color=(Color) XMLUtil.getBean(); 8 // color=new White(); 9 woman=color.produceWoman(); 10 woman.play(); 11 man=color.produceMan(); 12 man.play(); 13 } 14 }
测试结果
标签:java,package,a004,模式,---,Override,com,public 来源: https://www.cnblogs.com/rainbow-1/p/15327896.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。