当前位置: 代码迷 >> Java相关 >> 工厂方法 ?
  详细解决方案

工厂方法 ?

热度:338   发布时间:2007-04-05 21:09:34.0
工厂方法 ?
老师给布置的作业是:


1:自己设计一个花园类,以实现工厂方法(生产花的实例,设置花的颜色等)。

于是我上网查了下什么叫工厂方法 但是看了之后 搞的云里雾里的
所以想向各位 那里得出 专业的 解释? 谢谢!

搜索更多相关的解决方案: 工厂  

----------------解决方案--------------------------------------------------------
设计模式?!
----------------解决方案--------------------------------------------------------

打个比方有一个类A,他有2个子类B和C,然后写一个工厂类
public class Factory{

  public static A creator(int which){

  //getClass 产生A一般可使用动态类装载装入类。
  if (which==1)
    return new B();
  else if (which==2)
    return new C();

  }

}
然后调用的时候用 A b = Factory.creator(1);来调用,这是个简单的工厂模式,这是为了加强类的封装性!不知道说得个清楚啊?

[此贴子已经被作者于2007-4-6 1:13:29编辑过]


----------------解决方案--------------------------------------------------------
楼上的差不多就是这个意思了,工厂就是专门生产东西的,你不用知道他是怎么生产的,比如你想要红色的花,黄色的花你只告诉你的工厂我要这种类型的,不用管他是怎么做的,他会给你做出来。
----------------解决方案--------------------------------------------------------

麻烦说详细一点啊 我还是不怎么明白呢 谢谢!


----------------解决方案--------------------------------------------------------
其实没必要搞清楚,用不到

----------------解决方案--------------------------------------------------------
以下是引用风月_无边在2007-4-7 23:04:18的发言:
其实没必要搞清楚,用不到

错,工厂模式是最常用的设计模式之一!
----------------解决方案--------------------------------------------------------
哦,是吗,确实没有好好的研究过 !!
----------------解决方案--------------------------------------------------------

以下是引用lgdcky在2007-4-6 1:04:56的发言:

打个比方有一个类A,他有2个子类B和C,然后写一个工厂类
public class Factory{

  public static A creator(int which){

  //getClass 产生A一般可使用动态类装载装入类。
  if (which==1)
    return new B();
  else if (which==2)
    return new C();

  }

}
然后调用的时候用 A b = Factory.creator(1);来调用,这是个简单的工厂模式,这是为了加强类的封装性!不知道说得个清楚啊?


我理解是,在工厂类里,有一个返回类类型的方法(这里是类A),如果满足方法里的某一条件就返回其所对应的那个类???
像楼主说的花类,是不是可以说 A是一 个花类,B是玫瑰花类,C是牡丹花类,然后调用方法,满足玫瑰花类就返回B,满足牡丹花类就返回C..
是这个意思吧?
----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------

  相关解决方案