【作者:孟祥月 博客:http://blog.csdn.net/mengxiangyue】
我最近开始学习设计模式,自己学习总结的一点东西,拿出来跟大家分享。
我们先举一个例子:我们需要一个苹果和香蕉的对象,我们得先创建两个类。然后我们产生对象的时候,需要分别调用这两个类的构造函数去产生这两个对象。但是我们感觉会烦,我们想要香蕉我告诉你香蕉你给我就可以了,至于你怎么产生的我不关心,但是现在什么都得我自己去做。可能这只是两个水果,那要是多了就更烦了,这时候我们就应该去想怎么简化它了,我们可以产生一个中间类,我们只要告诉这个类的实例,我们需要什么,它就给我们返回什么,这样我们就感觉挺舒服了。这个类就是工厂类,对应的产生的实例就是工厂。
下面就是我们实现上面的这个例子的代码:
//简单工厂模式
//声明一个产品的接口,用于在工厂中返回具体的产品
interface Fruit{}
class Apple implements Fruit
{
Apple()
{
System.out.println("这是一个苹果");
}
}
class Banana implements Fruit
{
Banana()
{
System.out.println("这是一个香蕉");
}
}
class Factory
{
Factory()
{
System.out.println("这是一个工厂");
}
public static Fruit get(String str)//一般这里需要写成静态的直接调用
{
if(str.equals("Apple"))
return new Apple();
else
return new Banana();
}
}
public class FactoryTest
{
public static void main(String[] args)
{
Factory f = new Factory();//这个显示的创建工厂
//下面的两种都可以生产一个苹果我们推荐使用第二种
f.get("Apple");
Factory.get("Apple");
}
}
上面的这个例子,自己感觉还是有点欠缺,希望读者能够看懂。如果哪里写错了,还请指出。