Factory Method模式学习笔记
??适用情况:当一个抽象工厂要生产某种产品时,他只知道要生产的产品的接口,而不知道其实现是怎样的。产品可能有很多种实现。
?
??? 解决方案:只定义抽象工厂生产该种产品的接口,而将实现留给实体工厂。不同的实体工厂知道怎样生产对应的产品。
?
??? 类图:
?
?
?
? GOF中的例子:

?
?? 实际应用:实际应用太多了,个人觉得这个模式太普通,其实就是接口与实现相分离的OO思想以及多态的体现,没什么特别之处,系统(使用者)还是要自己构建具体工厂类来生产,只不过操作的引用是抽象工厂类而已。比如说Collection类的iterator()方法,就是工厂方法,它只是一个接口,其实现要由具体的HashSet, LinkedList的iterator()方法来实现。再比如SortedSet的comparator()方法也是由TreeSet的comparator()方法来实现。
?
?? 与其它设计模式的比较:TBD