单项选择题

A.将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化
B.定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换
C.为其他对象提供一种代理以控制对这个对象的访问
D.保证一个类仅有一个实例,并提供一个访问它的全局访问点