Facade (正面)模式,用于为一组负责的功能接口,提供一个简单而且特定的接口。
比如Java.sql 提供了许多操作数据库的接口,功能众多,现在有一个BookData 对象,需要与数据库进行交互,根据FACADE 模式,设计出一个DB 类,封装了BookData的数据库操作。这样,DB 类与java.sql 直接交互,对外提供了BookData 的操作接口。
public class DB
{
public viod addBook(){...};
public void removeBook(){...};
...
}
DB类隐藏了java.sql ,在用户看来,java.sql 使不存在的,它藏在DB 类的后面。
Facade 模式缺点:关注的重点由被隐藏的对象变为facades,需要每个用户都同意这一约束,而不去越过它直接访问之下的对象。