门面模式

2230 查看

描述:客户端仅需通过一个入口即可完成多个子系统的调用,这个入口就是子系统的门面。

场景:学妹学弟开学要注册,缴费和领课本,一般助班都会帮忙把它们弄完,他们只要提供自己的名字即可。

public class Facade {

    public static void main(String[] args) {
        // 助班可以做为学弟学妹的门面,从而他们不必跑3趟
        String name = "徐子珊";
        new Zhuban().help(name);
    }
}

// 助班, 非常好人,帮每个学弟学妹做了“注册”,“缴费”和“领课本”
class Zhuban {

    void help(String name) {
        new Zhaoshengban().reg(name);
        new Caiwuchu().get(name);
        new Jiaowuchu().getBooks(name);
    }
}

// 招生办
class Zhaoshengban {

    void reg(String name) {
        System.out.println(String.format("%s:注册", name));
    }
}

//财务处
class Caiwuchu {

    void get(String name) {
        System.out.println(String.format("%s:缴费", name));
    }
}

// 教务处
class Jiaowuchu {

    void getBooks(String name) {
        System.out.println(String.format("%s:领课本", name));
    }
}