世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。
- 意图
提供一个创建对象的接口,根据需求创建不同的子类对象 - 类图
- 实例
interface Obj {}
class Obj1 implements Obj {}
class Obj2 implements Obj {}
class Obj3 implements Obj {}
class ObjFactory {
public Obj getObj(String name) {
if (null == name) return null;
Obj obj = null;
switch (name) {
case "obj1" : obj = new Obj1(); break;
case "obj2" : obj = new Obj2(); break;
case "obj3" : obj = new Obj3(); break;
}
return obj;
}
}
- 测试
class FactoryTest {
public static void main(String[] args) {
ObjFactory objFactory = new ObjFactory();
System.out.println(objFactory.getObj("obj1"));
System.out.println(objFactory.getObj("obj2"));
System.out.println(objFactory.getObj("obj3"));
}
}
运行结果:
designpattern.factory.Obj1@6e3c1e69
designpattern.factory.Obj2@35851384
designpattern.factory.Obj3@6adca536