代码:String className = "com.jivesoftware.forum.database.DbUserManager";
try {
Class c = Class.forName(className);
// Attempt to instantiate the UserManager implementation with a
// DbForumFactory as a paramater.
Class [] params = new Class [] { this.getClass() };
Constructor constructor = c.getConstructor(params); // Intantiate the gateway object. We assume that
userManager = (UserManager)constructor.newInstance(
new Object[] { this });
}
catch (Exception e) {
System.err.println("Exception creating UserManager!");
e.printStackTrace();
}Class [] params = new Class [] { this.getClass() };
这行是什么意思?Constructor constructor = c.getConstructor(params);
我没有懂返回的是什么?userManager = (UserManager)constructor.newInstance(
new Object[] { this });
这个是生成 com.jivesoftware.forum.database.DbUserManager 类吗?
为什么不这样呢?
Class c = Class.forName(className);
userManager = (UserManager)c.newInstance();
这样也可以生成亚
try {
Class c = Class.forName(className);
// Attempt to instantiate the UserManager implementation with a
// DbForumFactory as a paramater.
Class [] params = new Class [] { this.getClass() };
Constructor constructor = c.getConstructor(params); // Intantiate the gateway object. We assume that
userManager = (UserManager)constructor.newInstance(
new Object[] { this });
}
catch (Exception e) {
System.err.println("Exception creating UserManager!");
e.printStackTrace();
}Class [] params = new Class [] { this.getClass() };
这行是什么意思?Constructor constructor = c.getConstructor(params);
我没有懂返回的是什么?userManager = (UserManager)constructor.newInstance(
new Object[] { this });
这个是生成 com.jivesoftware.forum.database.DbUserManager 类吗?
为什么不这样呢?
Class c = Class.forName(className);
userManager = (UserManager)c.newInstance();
这样也可以生成亚
匿名对象。
第二个问题,看一下设计模式的书。
类工厂模式和Builder模式