关于本站内工厂模式代码的疑问

本站有内容如下:
public class SimpleFactory extends Factory{

  public Sample creator(){
    ......
  }

  public Sample2 creator(){
    ......
  }


}

我认为其语法有基本错误,
过载方法不可能用返回类型区别
故SingleFactory类不成立。

你说得对,这是一个语法错误,我会纠正,只要在后面一个creator加一个参数,比如 creator(String name)
这样就可以。

这里说明这样两个个工厂方法,用来生成产品sample和sample2

多谢建议

bang:你好,
没想到你这么快就回复了主题:)
我的一个想法是,
最好create(String classname)
这样方法只要写一遍,并且以后不用维护了
在方法内部用class.forName(classname)生成子类实例
不知是否可行?

当然可以,通常做法就是用class.forname的。
我这里只是说一种意思,使用应用一般使用你说的方法。

你对工厂模式还是理解比较深入的

但是我想的是把class.forName(classname)中的classname放到XML中,这样可以任意修改,很灵活。

我这本身就是这个意思啊。
CLient call :creat(String classname)
自然是可以任意变换的。

对,petstore中就是将这个类名写在ejb-jar.xml中。
看看它的catalogDaofactory就明白

你那里有宠物店的代码么?他是免费的么?能不能提供给大家?

宠物店代码在Java.sun.com有下载

还是很想研究一下宠物店,但是相关介绍实在不多,找了找,这篇文章是不错的http://www.csdn.net/news/newstopic/5/5473.shtml

by the way,什么情况下最适合使用工厂模式呢?普通的工厂模式和这句话有区别么?
Class Form = Class.forName(formType);
form =(AbstractForm)Form.newInstance();
印象里工厂模式脱离不开这两句话啊!

模式只是一个概念上的理解,具体的解决方法不会局限在一定的语言或语句上。那些只是实现的技巧

不会吧,你可以继承AbstractFactory 然后适当的选择实现,可以不用反射的