怎么把个人做的网站上传到网上,新编asp.net 2.0网站开发从入门到精通 代码,重庆网站快速排名提升,网站设计培训班老师实验4#xff1a;抽象工厂模式
本次实验属于模仿型实验#xff0c;通过本次实验学生将掌握以下内容#xff1a;
1、理解抽象工厂模式的动机#xff0c;掌握该模式的结构#xff1b;
2、能够利用抽象工厂模式解决实际问题。
[实验任务]#xff1a;人与肤色
使用抽象…实验4抽象工厂模式
本次实验属于模仿型实验通过本次实验学生将掌握以下内容
1、理解抽象工厂模式的动机掌握该模式的结构
2、能够利用抽象工厂模式解决实际问题。
[实验任务]人与肤色
使用抽象工厂模式完成下述产品等级结构
类图
运行效果 源代码
public class BlackFactory implements PeopleFactory
{Overridepublic Man produceMan(){return new BlackMan();}Overridepublic Woman produceWoman(){return new BlackWoman();}
}public class BlackMan implements Man
{Overridepublic void show(){System.out.println(一个黑种男人);}
}public class BlackWoman implements Woman
{Overridepublic void show(){System.out.println(一个黑种女人);}
}public class Client
{public static void main(String[] args){try{PeopleFactory factory;Man man;Woman woman;//根据xml配置文件动态实例对象factory (PeopleFactory) XMLUtil.getBean();man factory.produceMan();man.show();woman factory.produceWoman();woman.show();}catch (Exception e){System.out.println(e.getMessage());}}
}public interface Man
{void show();
}public interface PeopleFactory
{Man produceMan();Woman produceWoman();
}public class WhiteFactory implements PeopleFactory
{Overridepublic Man produceMan(){return new WhiteMan();}Overridepublic Woman produceWoman(){return new WhiteWoman();}
}public class WhiteMan implements Man
{Overridepublic void show(){System.out.println(一个白种男人);}
}public class WhiteWoman implements Woman
{Overridepublic void show(){System.out.println(一个白种女人);}
}public interface Woman
{void show();
}import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File;public class XMLUtil
{public static Object getBean(){try{//创建DOM文档对象DocumentBuilderFactory dFactory DocumentBuilderFactory.newInstance();DocumentBuilder builder dFactory.newDocumentBuilder();Document doc builder.parse(new File(src/main/resources/config4.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 PeopleFactory
{Overridepublic Man produceMan(){return new YellowMan();}Overridepublic Woman produceWoman(){return new YellowWoman();}
}public class YellowMan implements Man
{Overridepublic void show(){System.out.println(一个黄种男人);}
}public class YellowWoman implements Woman
{Overridepublic void show(){System.out.println(一个黄种女人);}
}
config4.xml
?xml version1.0 encodingUTF-8?
configclassNameTutorial_4.YellowFactory/className
/config