工厂方法模式 问题引入 问题描述 大学生薛磊风在过去三年里一直在帮助孤寡老人,每周都去老人家里,为老人洗衣扫地、买米买油。有一次,他不幸受了伤,便委托他的两个同学继续去帮助老人,且不必提及任何人的名字,只需说是学雷锋做好事即可。 帮助老人是长期工作,三名“学雷锋的大学生”毕业后,也依然会以“社区志愿者”的名义继续学雷锋做好事。而老人其实不需要知道是谁来做好事,只需要知道是学雷锋的人来帮助就可以了。 上述过程在程序实现时,我们如果使用“学雷锋的大学生”封装学雷锋者并调用,当他们毕业时,我们需要以“社区志愿者”重新封装,重新调用,要想使代码变更量少,可以用 来实现。 模式定义 是指定义一个用于创建对象的结构,让子类决定实例化哪个类。工厂方法使类的实例化过程延迟到其子类。