定义一个创建对象的接口,让子类决定实例化哪一个类。
1.
图中的NewDocument只知道何时要new一个document(不变的部分),但不知到new 一个什么样的document(变化的部分)。这其实是隔离变化的部分与不变的不分,而且不变部分写在父类中,减少了代码的重复。
2.和模板方法很相似。
3.工厂方法似乎有很很多种实现方法。用这一模式的目的是为了满足开闭原则,开闭原则是关键,其实这么多的设计模式的目的不是为了设计模式而模式,而是为了满足软件开发的一些基本原则,使软件便于开发,修改,扩展。