单例和工厂:

相同:单例和工厂都是帮助创建对象
不同:单例考虑了资源的消耗情况,只返回指定的唯一实例对象。
而工厂设计模式可以根据具体参数/要求得到不同的细分实例对象,且不考虑资源的消耗,只是从提高代码复用性角度出发。

模板和装饰者:

相同:都可以理解是将共有的逻辑抽取
不同:模板设计模式是固定了整体流程,继承他的子类耦合性更高,继承后就必须遵循父类的执行逻辑。
而装饰者设计模式是动态的加强,可以选择性加强或不加强,耦合性很低。