外观模式的意图是为子系统提供一个接口,便于它的使用。
可以用来简化工具包(toolkits),只需少量代码,就能提供典型的无修饰用法的类库中的类,一个外观就是一个类,它包含的功能介于工具包与完整的应用程序之间,为工具包或子系统的类提供了简单的用法。
外观类可能全是静态方法,在UML中,这样的类成为utility(工具)。
package app.facade;
import java.awt.Font;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
//javax.swing包含了JOptionPane,以便弹出一个标准框,如下代码会反复显示对话框,直到用户单击了Yes按钮
public class ShowOptionPane {
public static void main(String[] args)
{
Font font=new Font("Dialog",Font.PLAIN,18);
UIManager.put("Button.font", font);
UIManager.put("Label.font", font);
int option;
do
{
option=JOptionPane.showConfirmDialog(null,"Had enough?","A Stubborn Dialog", JOptionPane.YES_NO_OPTION);
}while(option==JOptionPane.NO_OPTION);
}
}
运行结果: