Java 设计模式

来源:互联网 发布:大帮手计件工资软件 编辑:程序博客网 时间:2024/06/06 05:31

基本概念

外观模式的作用:

-松散耦合,外观模式松散了客户端与子系统的耦合关系,让子系统内部的模块能更容易扩展和维护。

  • 简单易用,外观模式让子系统更加易用,客户端不再需要了解子系统内部的实现,也不需要跟众多子系统内部的模块进行交互,只需要跟门面类交互就可以了。

-更好的划分访问层次-通过合理使用 Facade,可以帮助我们更好地划分访问的层次。有些方法是对系统外的,有些方法是系统内部使用的。把需要暴露给外部的功能集中到门面中,这样既方便客户端使用,也很好地隐藏了内部的细节。

外观模式的角色:

  • SubSystem,子系统角色。表示一个系统的子系统或模块。

  • Facade,外观角色,客户端通过操作外观角色从而达到控制子系统角色的目的。对于客户端来说,外观角色好比一道屏障,对客户端屏蔽了子系统的具体实现。


实例探究

假设一台电脑,它包含了 CPU(处理器),Memory(内存) ,Disk(硬盘)这几个部件,若想要启动电脑,则先后必须启动 CPU、Memory、Disk。关闭也是如此。

但是实际上我们在电脑开/关机时根本不需要去操作这些组件,因为电脑已经帮我们都处理好了,并隐藏了这些东西。

这些组件好比子系统角色,而电脑就是一个外观角色。


  • SubSystem,子系统角色。

    public class CPU {       public void startup(){          System.out.println("cpu startup!");      }      public void shutdown(){          System.out.println("cpu shutdown!");      }  }public class Memory {        public void startup(){          System.out.println("memory startup!");      }      public void shutdown(){          System.out.println("memory shutdown!");      }  } public class Disk {      public void startup(){          System.out.println("disk startup!");      }      public void shutdown(){          System.out.println("disk shutdown!");      }  }     

  • Facade,外观角色。

    public class Computer {      private CPU cpu;      private Memory memory;      private Disk disk;      public Computer(){          cpu = new CPU();          memory = new Memory();          disk = new Disk();      }      public void startup(){          System.out.println("start the computer!");          cpu.startup();          memory.startup();          disk.startup();          System.out.println("start computer finished!");      }      public void shutdown(){          System.out.println("begin to close the computer!");          cpu.shutdown();          memory.shutdown();          disk.shutdown();          System.out.println("computer closed!");      }  }  

  • 具体调用如下:

    Computer computer = new Computer();  computer.startup();  computer.shutdown();  

参考

  • http://www.cnblogs.com/maowang1991/archive/2013/04/15/3023236.html

  • http://blog.csdn.net/jason0539/article/details/22775311

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 被罩拉链拉不合怎么办 拉链拉不合怎么办图解 塑料拉链不顺畅怎么办 隐形拉链不好拉怎么办 房东赶租客走怎么办 南京合租一间怎么办租房补贴 大学登错成绩怎么办 网游停服花了钱怎么办 北斗星x5油耗高怎么办 北斗星空调不凉怎么办 踏板摩托车费油怎么办 lol队友一直送怎么办 电脑信号无连接怎么办 电脑屏不全屏怎么办 电脑桌面不能显示全屏怎么办? 电脑黑屏无信号怎么办 笔记本电脑屏幕不显示怎么办 手机登录认证要怎么办 360手机丢失了怎么办 主播周年庆怎么办 学校选课系统进不去怎么办 选课系统关闭了怎么办 政府工作人员被威胁怎么办 报志愿忘记用户名怎么办 账号密码忘记了怎么办 商盟卡过期了怎么办 香港身份证掉了怎么办 简易注销有异议怎么办 左转红灯直行了怎么办 怀孕初期吃螃蟹怎么办 天下霸图打不过传闻怎么办 怀孕后期阴部痛怎么办 胎儿头大腿短怎么办 孕期大腿根疼怎么办 到工作单位催债怎么办 被讨债公司骚扰怎么办 要债人上门不走怎么办 阴阳师体力满了怎么办 狗吃了糯米怎么办 误给狗狗吃糯米怎么办 脸上长满了斑怎么办