From 《Head first设计模式》
装饰者:包装一个对象,以提供新的行为。
状态:封装了基于状态的行为,并使用委托在行为间切换。
迭代器:在对象的集合中游走,而不暴露集合的实现。
外观:简化一群类的接口。
策略:封装可以互换的行为,并使用委托来决定要使用哪一个。
代理:包装对象,以控制对此对象的访问。
工厂方法:由子类决定具体要创建的是哪一个类。
适配器:封装对象,并提供不同的接口。
观察者:让对象能够在状态改变时被通知。
模版方法:由子类决定如何实现一个算法中的步骤。
组合:客户使用一致的方式处理对象集合和单个对象。
单例:确保全局中只有一个对象被创建。
抽象工厂:允许客户创建对象的家族,而无需指定他们的具体类。
命令:封装请求成为对象。