提供了一个统一的接口,用来访问子系统中的一群接口,从而让子系统更容易使用。
使用原型实例指定要创建对象的类型,通过复制这个原型来创建新对象。
动态地给一个对象增加一些额外的职责。
定义一个创建对象的接口,但由子类决定要实例化哪个类,把实例化操作推迟到子类。
将一个接口转换成用户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。