zoukankan      html  css  js  c++  java
  • 设计模式整理_外观模式

      外观模式提供了一个统一的接口,用来访问子系统中的一群接口,外观定义了一个高层的接口,让子系统更容易使用.因为有了外观,客户的工作将更加快捷简便.

      组件建立后,将会组装于外观中,并直接将外观派发给客户,方便使用,因此外观模式简化了组件中的一系列接口,方便客户的操作.外观将客户从一个复杂的子系统中解耦.当需要简化并统一一个很大的接口或者一群复杂的接口时,使用外观.

      下面是外观模式的具体使用,可以看出,通过外观模式,大大的简化了客户的操作,对于组件的操作将在具体的外观内部进行操作.

      

    //组件
    public interface Login {
        public void loginGame();
    }
    class RpgLogin implements Login{
    
        @Override
        public void loginGame() {
            System.out.println("Login in RPG Game!");
        }
        
    }
    //组件
    public interface Information {
        public void getInformation();
    }
    class RpgInformation implements Information {
    
        @Override
        public void getInformation() {
            System.out.println("get RPG Information.");
        }
        
    }
    //组件
    public interface Role {
        public void selectRole();
    }
    class RpgRole implements Role{
        public void selectRole() {
            System.out.println("Select a RPG GAME role.");
        }
    }
    public interface PlayGame {
        public void play();
    }
    class PlayRpgGame implements PlayGame {
        /*三个组件直接在外观类中进行实例化,客户看不到,客户只关心具体的调用.*/
        Login log=new RpgLogin();
        Information inf=new RpgInformation();
        Role rol=new RpgRole();
        @Override
        public void play() {
            log.loginGame();
            inf.getInformation();
            rol.selectRole();
        }
        
    }
    //通过外观模式大大简化了操作.
    public class Test {
        public static void main(String[] args) {
            PlayRpgGame play=new PlayRpgGame();
            play.play();
        }
    }
  • 相关阅读:
    计算机综合面试题总结
    MySQL入门很简单: 13 数据备份和还原
    MySQL入门很简单: 12 MYSQL 用户管理
    MySQL入门很简单: 11 mysql函数
    页面即使加过了移除监听事件,但是到新页面后事件任然存在
    git命令大全
    document.documentElement.scrollTop指定位置失效解决办法
    vue做商品选择如何保持样式
    vue父组件向子组件传对象,不实时更新解决
    vue 遮罩层阻止默认滚动事件
  • 原文地址:https://www.cnblogs.com/hlhdidi/p/5597497.html
Copyright © 2011-2022 走看看