通知
此博客运行在jpress系统上,如果你喜欢此博客模板,请加QQ群:1061691290(whimurmur模板/jpress插件),免费下载使用

结构型模式-门面(外观)模式

3219人浏览 / 0人评论 | 作者:whisper  | 分类: 设计模式与算法  | 标签: 设计模式与算法  | 

作者: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();

    }
}

  运行结果


亲爱的读者:有时间可以点赞评论一下

点赞(0) 打赏

全部评论

还没有评论!