摘要:面向对象的程序设计越来越追求程序的可复用性和灵活性, 对于经验较少的程序设计者直接得到具有良好复用性和灵活性的程序是具有一定难度的, 软件设计模式就是提取面向对象程序设计者的经验, 并对其进行总结. 模板方法模式中父类定义一个算法的框架, 用模板方法规定算法的执行步骤, 将可变的步骤延迟到子类实现, 每一种不同的实现都需要定义一个新的子类, 系统会越来越庞大, 系统的可维护性以及可读性越来越差. 因此将抽象工厂模式嵌入到模板方法模式形成一个复合模式, 复合模式的设计核心是为每一个延迟到子类的可变的步骤提供一个创建对象的接口, 该接口对一个完整的产品族进行了定义. 复合模式既保证了算法结构的稳定性, 又分离了具体的实现类, 增强了程序的健壮性、可复用性以及灵活性.