有个疑问:工厂模式最终不也是new个对象出来么?调用者直接用new好了,何必还要用工厂模式多此一举呢?想了半天,查了些资料,弄出了点眉目。
有时候,构造对象确实只要简单的new就可以了,但另一些时候,构造对象的过程就比较复杂,比如要有很多条件判断啊,参数选择啊之类的,这时候把它们交给调用者去做就有些不太负责和不合理。好比我(调用者)需要一架纸飞机,行,你给我张纸,我自己折,问题不大,这就好比是简单的new个对象出来。可是如果我要架真飞机,要我造不累死我?当然得交给飞机工厂去做啦。这就是工厂模式做的事。
jdk中工厂模式的例子之一是DateFormat类,它有几个重载的工厂方法getTimeInstance() ,是构造DateFormat子类实例的。查看了下源码,确实过程比较复杂,所以用了工厂模式。
转载于:https://www.cnblogs.com/happylrui/archive/2013/03/01/2938838.html