首页 > 编程语言 > 详细

Java 工厂模式

时间:2015-03-05 02:05:06      阅读:369      评论:0      收藏:0      [点我收藏+]

Java工厂模式分为三种

1、简单工厂模式(又叫静态工厂模式)

代码:

package simplefactory;

public interface Person {
	public void say();
}

?

package simplefactory;

public class Chinese implements Person{

	public void say() {
		System.out.println("I am Chinese.");
	}

}

?

package simplefactory;

public class Japanese implements Person {

	public void say() {
		System.out.println("I am Japanese.");
	}

}

?

package simplefactory;

public class PersonCreator {
	public Person createPerson(String type) {
		if (type.equals("chn")) {
			return new Chinese();
		}
		if (type.equals("jpn")) {
			return new Japanese();
		}

		return null;
	}
}

?

package simplefactory;

public class Test {
	public static void main(String[] args) {
		PersonCreator pc = new PersonCreator();
		pc.createPerson("chn").say();
		pc.createPerson("jpn").say();
	}
}

?2、抽象工厂模式

代码:

package factorymethod
public abstract class AbstractFactory {
	public abstract Person create();
}

?

package factorymethod;

public class Chinese extends Person{

	public void say() {
		System.out.println("I am Chinese.");
	}

}

?

package factorymethod;

public class Japanese extends Person {

	public void say() {
		System.out.println("I am Japanese.");
	}

}

?

package factorymethod;

public interface AbstractFactory {
	public Person create();
}

?

package factorymethod;

public class ChineseFactory implements AbstractFactory {

	public Person create() {

		return new Chinese();
	}

}

?

package factorymethod;

public class JapaneseFactory implements AbstractFactory {

	public Person create() {

		return new Japanese();
	}

}

?

package factorymethod;

public class Test {
	public static void main(String[] args) {
		ChineseFactory cf = new ChineseFactory();
		cf.create().say();
		JapaneseFactory jf = new JapaneseFactory();
		jf.create().say();
	}
}

?3、抽象工厂模式

代码:

package abstractfactory;

public interface Person {
	public void say();
}

?

package abstractfactory;

public class Chinese implements Person{

	public void say() {
		System.out.println("I am Chinese.");
	}

}

?

package abstractfactory;

public class Japanese implements Person {

	public void say() {
		System.out.println("I am Japanese.");
	}

}

?

package abstractfactory;

public abstract class AbstractFactory {
	public abstract Chinese createChinese();
	public abstract Japanese createJapanese();
}

?

package abstractfactory;

public class DefaultFactory extends AbstractFactory{

	public Chinese createChinese() {
		return new Chinese();
	}

	public Japanese createJapanese() {
		return new Japanese();
	}

}

?

package abstractfactory;

public class Test {
	public static void main(String[] args) {
		AbstractFactory af = new DefaultFactory();
		af.createChinese().say();
		af.createJapanese().say();
	}
}

?

Java 工厂模式

原文:http://zhaojian0910.iteye.com/blog/2188886

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!