第三章 设计模(扩展).pptVIP

  • 22
  • 0
  • 约2.3万字
  • 约 103页
  • 2018-07-09 发布于江苏
  • 举报
第三章 设计模(扩展)

目录 门面模式 模板方法模式 建造者模式 桥梁模式 门面模式 基本类图 写信的四个步骤: /** * 定义一个写信的过程 */ public interface LetterProcess { //首先要写信的内容 public void writeContext(String context); //其次写信封 public void fillEnvelope(String address); //把信放到信封里 public void letterInotoEnvelope(); //然后邮递 public void sendLetter(); } 写信过程的具体实现: /** * 写信的具体实现了 */ public class LetterProcessImpl implements LetterProcess { //写信 public void writeContext(String context) { System.out.println(填写信的内容.... + context); } //在信封上填写必要的信息 public void fillEnvelope(String address) { System.out.println(填写收件人地址及姓名.... + address); } //把信放到信封中,并封好 public void letterInotoEnvelope() { System.out.println(把信放到信封中....); } //塞到邮箱中,邮递 public void sendLetter() { System.out.println(邮递信件...); } } 场景类 /** * 我开始给朋友写信了 */ public class Client { public static void main(String[] args) { //创建一个处理信件的过程 LetterProcess letterProcess = new LetterProcessImpl(); //开始写信 letterProcess.writeContext(Hello,Its me,do you know who I am? Im your old lover. Id like to....); //开始写信封 letterProcess.fillEnvelope(Happy Road No. 666,God Province,Heaven); //把信放到信封里,并封装好 letterProcess.letterInotoEnvelope(); //跑到邮局把信塞到邮箱,投递 letterProcess.sendLetter(); } } 缺陷 那这个过程与高内聚的要求相差甚远,你想,你要知道这四个步骤,而且还要知道这四个步骤的顺序,一旦出错,信就不可能邮寄出去,那我们如何来改进呢? 门面类图 改进 这就是门面模式,还是比较简单的,Sub System 比较复杂,为了让调用者更方便的调用,就对Sub System 进行了封装,增加了一个门面,Client 调用时,直接调用门面的方法就可以了,不用了解具体的实现方法以及相关的业务顺序,我们来看程序的改变,LetterProcess 接口和实现类都没有改变,只是增加了一个denPostOffice 类。 ModenPostOffice 类 public class ModenPostOffice { private LetterProcess letterProcess = new LetterProcessImpl(); //写信,封装,投递,一体化了 public void sendLetter(String context,String address){ //帮你写信 letterProcess.writeContext(context); //写好信封 letterProcess.fillEnvelope(address); //把信放到信封中 letterProcess.letterInotoEnvelope(); //邮递信件 letterProcess.sendLetter(); } } 这个类是什么意思呢,就是说现在又一个叫Hell Road PostOffice(地狱路邮局)提供了一种新型的服务,客户只要把信的内容以及收信地址给他们,他们就会把信写好,封好。 并发送出去,这种服务提出时大受欢迎呀,这简单呀,客户减少了很多工作,那我们看看客户是怎么调用的。 Client.java package com.cbf4life.facade; /** * 我开始给朋友写信了 */ public c

文档评论(0)

1亿VIP精品文档

相关文档