⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 factorydemo03.java

📁 java开发模式系列之抽象工厂模式 视频讲解 很容易懂
💻 JAVA
字号:
package org.jzkangta.factorydemo03;

interface Person{
	public void eat();
	public void talk();
}
//男人
class Man implements Person{
	public void eat(){
		System.out.println("男人再吃东西。。。。");
	}
	public void talk(){
		System.out.println("男人在说话。。。。");
	}
}
//女人
class Woman implements Person{
	public void eat(){
		System.out.println("女人再吃东西。。。。");
	}
	public void talk(){
		System.out.println("女人在说话。。。。");
	}
}

interface Animal{
	public void eat();
	public void sleep();
}
//公牛
class Bull implements Animal{
	public void eat(){
		System.out.println("Bull再吃东西。。。。。");
	}
	public void sleep(){
		System.out.println("Bull睡觉了。。。。");
	}
}
//母牛
class Cow implements Animal{
	public void eat(){
		System.out.println("Cow再吃东西。。。。。");
	}
	public void sleep(){
		System.out.println("Cow睡觉了。。。。");
	}
}
//NWFactory-->女娲
interface NWFactory{
	public Person getPerson(String type);
	public Animal getAnimal(String type);
}
//阳绳-->用来造男人和雄性动物(Bull)
class YangSheng implements NWFactory{
	Man m=null;
	Bull b=null;
	public Man getPerson(String type){
		try {
			m=(Man)Class.forName("org.jzkangta.factorydemo03."+type).newInstance();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return m;
	}
	public Bull getAnimal(String type){
		try {
			b=(Bull)Class.forName("org.jzkangta.factorydemo03."+type).newInstance();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return b;
	}
}
//阴绳-->用来造女人和雌性动物(Cow)
class YinSheng implements NWFactory{
	Woman w=null;
	Cow c=null;
	public Woman getPerson(String type){
		try {
			w=(Woman)Class.forName("org.jzkangta.factorydemo03."+type).newInstance();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return w;
	}
	public Cow getAnimal(String type){
		try {
			c=(Cow)Class.forName("org.jzkangta.factorydemo03."+type).newInstance();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return c;
	}
}

public class FactoryDemo03 {

	public static void main(String[] args) {
		//实例化一个阳绳,ys
		YangSheng ys=new YangSheng();
		//实例化一个阴绳,ys1
		YinSheng ys1=new YinSheng();
		//造男人和女人,p1是男人,p2是女人
		Person p1=ys.getPerson("Man");
		Person p2=ys1.getPerson("Woman");
		//造动物,a1是公牛(Bull),a2是母牛(Cow)
		Animal a1=ys.getAnimal("Bull");
		Animal a2=ys1.getAnimal("Cow");
		a1.eat();
		a1.sleep();
		a2.eat();
		a2.sleep();
		p1.eat();
		p1.talk();
		p2.eat();
		p2.talk();

	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -