作者:whisper
链接:http://proprogrammar.com:443/article/447
声明:请尊重原作者的劳动,如需转载请注明出处
为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
看个例子
package constructional.pattern.facade;
/// <summary>
/// 外观类
/// </summary>
public class Facade
{
private SubSystemOne one;
private SubSystemTwo two;
private SubSystemThree three;
private SubSystemFour four;
public Facade()
{
one = new SubSystemOne();
two = new SubSystemTwo();
three = new SubSystemThree();
four = new SubSystemFour();
}
public void MethodA()
{
System.out.println("\nMethod group A----");
one.MethodeOne();
two.MethodTwo();
four.MethodFour();
}
public void MethodB()
{
System.out.println("\nMethod group B----");
two.MethodTwo();
three.MethodThree();
}
}
package constructional.pattern.facade;
/// <summary>
/// 子系统中的一个类
/// </summary>
public class SubSystemOne
{
public void MethodeOne()
{
System.out.println("Sub System first method.");
}
}
package constructional.pattern.facade;
/// <summary>
/// 子系统中一个类
/// </summary>
public class SubSystemTwo
{
public void MethodTwo()
{
System.out.println("Sub System second method.");
}
}
package constructional.pattern.facade;
/// <summary>
/// 子系统中一个类
/// </summary>
public class SubSystemThree
{
public void MethodThree()
{
System.out.println("Sub System third method.");
}
}
package constructional.pattern.facade;
/// <summary>
/// 子系统中一个类
/// </summary>
public class SubSystemFour
{
public void MethodFour()
{
System.out.println("Sub System fourth method.");
}
}
测试代码
package constructional.pattern.facade;
public class Client {
public static void main(String[] args)
{
// 由于Facade的作用,客户端可以根本不知道子系统类的存在
Facade facade = new Facade();
facade.MethodA();
facade.MethodB();
}
}
运行结果
亲爱的读者:有时间可以点赞评论一下
全部评论