讲故事,学(Java)设计模式—工厂模式

文章由@昵称神马的太讨厌了翻译。如果你也希望参与类似的系列文章翻译,可以加入我们的Java开发 和 技术翻译 小组。

1.关于工厂模式

工厂模式是根据不同的参数创建对象。例如用工厂创建人。 如果我们想要一个男孩,工厂就会为我们生产一个男孩;如果我们需要一个女孩,工厂则会为我们生产一个女孩。工厂会根据不同的参数,为我们提供不同的物品。

2.工厂模式类图

 

3.工厂模式Java代码

interface Human {
	public void Talk();
	public void Walk();
}

class Boy implements Human{
	@Override
	public void Talk() {
		System.out.println("Boy is talking...");		
	}

	@Override
	public void Walk() {
		System.out.println("Boy is walking...");
	}
}

class Girl implements Human{

	@Override
	public void Talk() {
		System.out.println("Girl is talking...");	
	}

	@Override
	public void Walk() {
		System.out.println("Girl is walking...");
	}
}

public class HumanFactory {
	public static Human createHuman(String m){
		Human p = null;
		if(m == "boy"){
			p = new Boy();
		}else if(m == "girl"){
			p = new Girl();
		}

		return p;
	}
}

4.工厂模式在Java标准库中的应用

根据不同的参数,getInstance()方法会返回不同的Calendar(日历)对象。

java.util.Calendar – getInstance()
java.util.Calendar – getInstance(TimeZone zone)
java.util.Calendar – getInstance(Locale aLocale)
java.util.Calendar – getInstance(TimeZone zone, Locale aLocale)

java.text.NumberFormat – getInstance()
java.text.NumberFormat – getInstance(Locale inLocale)
原文链接: programcreek 翻译: ImportNew.com - ImportNew读者
译文链接: http://www.importnew.com/6718.html
[ 转载请保留原文出处、译者和译文链接。]

关于作者: ImportNew读者

标注为 "ImportNew读者" 发布的文章,均为热心读者的投稿。感谢支持!

查看ImportNew读者的更多文章 >>



相关文章

发表评论

Comment form

(*) 表示必填项

2 条评论

  1. applixy 说道:

    写的太好了,不像其它网站都是复制粘贴,举例很清晰

    Thumb up 0 Thumb down 0

  2. applixy 说道:

    如果能讲一下简单工厂模式跟工厂方法模式的区别就更好了

    Thumb up 0 Thumb down 0

跳到底部
返回顶部