多项选择题

A.提供一个统一的接口去访问多个子系统的多个不同的接口
B.提供了一个简单且公用的接口去处理复杂的子系统,并且没有减少子系统的功能
C.限制了客户的自由,减少了可变性
D.客户与抽象的实现类中存在若干依赖