java设计模式学习笔记9-外观模式

外观模式(门面模式),隐藏了系统的复杂性,并向客户提供一个或多个可访问系统功能的接口,为子系统中的一组接口提供了一个统一的访问接口,此接口使得子系统更容易被访问更简单的被调用功能;

1. 子系统角色

/**
 * 外观模式(门面模式)--子系统角色 
 */
@Slf4j
public class FacadeDeskLeg {

    public void install() {
        log.info("子系统角色------安装桌腿------");
    }

    public void unInstall() {
        log.info("子系统角色------拆卸桌腿------");
    }
}
/**
 * 外观模式(门面模式)-子系统角色 
 */
@Slf4j
public class FacadeDeskTop {

    public void install() {
        log.info("子系统角色------安装桌面------");
    }

    public void unInstall() {
        log.info("子系统角色------拆卸桌面------");
    }
}
/**
 * 外观模式(门面模式)--子系统角色 
 */
@Slf4j
public class FacadeDeskDesc {

    public void install() {
        log.info("子系统角色------安装桌饰------");
    }

    public void unInstall() {
        log.info("子系统角色------拆卸桌饰------");
    }
}

2. 门面角色

/**
 * 外观模式(门面模式)--门面角色 
 */
@Slf4j
public class DeskFacade {
    FacadeDeskLeg  facadeDeskLeg  = new FacadeDeskLeg();
    FacadeDeskTop  facadeDeskTop  = new FacadeDeskTop();
    FacadeDeskDesc facadeDeskDesc = new FacadeDeskDesc();

    public void install() {
        log.info("门面角色------开始组装桌子------");
        facadeDeskLeg.install();
        facadeDeskTop.install();
        facadeDeskDesc.install();
    }
}

3. 客户角色--测试

/**
 * 外观模式(门面模式)-客户角色-测试 
 */
@Slf4j
public class FacadeTest {

    @Test
    public void test() {
        log.info("外观模式(门面模式)------开始测试");
        DeskFacade deskFacade = new DeskFacade();
        deskFacade.install();
        log.info("外观模式(门面模式)------测试结束");
    }
}

4.测试结果

java设计模式学习笔记9-外观模式_第1张图片

你可能感兴趣的:(设计模式学习笔记,外观模式(门面模式))