packagecom.jerry.design.facade.imp;
publicinterfaceFacadeImp {
publicvoidtest();
publicvoidtestA();
publicvoidtestB();
publicvoidtestC();
}
实现类A:
packagecom.jerry.design.facade.impl;
importcom.jerry.design.facade.imp.FacadeImp;
publicclassTestAimplementsFacadeImp {
publicvoidtest(){
System.out.println(" i am TestA's test()!");
}
@Override
publicvoidtestA() {
System.out.println(" i am TestA's testA()!");
}
@Override
publicvoidtestB() {
}
@Override
publicvoidtestC() {
}
}
实现类B:
packagecom.jerry.design.facade.impl;
importcom.jerry.design.facade.imp.FacadeImp;
publicclassTestBimplementsFacadeImp {
publicvoidtest(){
System.out.println(" i am TestB's test()!");
}
@Override
publicvoidtestA() {
}
@Override
publicvoidtestB() {
System.out.println(" i am TestB's testB()!");
}
@Override
publicvoidtestC() {
}
}
实现类C:
packagecom.jerry.design.facade.impl;
importcom.jerry.design.facade.imp.FacadeImp;
publicclassTestCimplementsFacadeImp {
publicvoidtest(){
System.out.println(" i am TestC's test()!");
}
@Override
publicvoidtestA() {
}
@Override
publicvoidtestB() {
}
@Override
publicvoidtestC() {
System.out.println(" i am TestC's testC()!");
}
}
外观类:
packagecom.jerry.design.facade.impl;
publicclassFacade {
publicvoidtestFacadeImplA(){
newTestA().test();
newTestB().test();
newTestC().test();
}
publicvoidtestFacadeImplB(){
newTestA().testA();
newTestB().testB();
newTestC().testC();
}
}
调用代码:
packagecom.jerry.design.facade.client;
importcom.jerry.design.facade.impl.Facade;
publicclassTest {
/**
*@paramargs
*/
publicstaticvoidmain(String[] args) {
newFacade().testFacadeImplA();
// i am TestA's test()!
// i am TestB's test()!
// i am TestC's test()!
newFacade().testFacadeImplB();
// i am TestA's testA()!
// i am TestB's testB()!
// i am TestC's testC()!
}
}
总结:使子系统易用