设计模式(扩展).ppt

  1. 1、本文档共101页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
设计模式(扩展)

目录 门面模式 模板方法模式 建造者模式 桥梁模式 门面模式 基本类图 写信的四个步骤: package com.cbf4life.facade; /** * 定义一个写信的过程 */ public interface LetterProcess { //首先要写信的内容 public void writeContext(String context); //其次写信封 public void fillEnvelope(String address); //把信放到信封里 public void letterInotoEnvelope(); //然后邮递 public void sendLetter(); } 写信过程的具体实现: package com.cbf4life.facade; /** * 写信的具体实现了 */ 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(邮递信件...); } } 场景类 package com.cbf4life.facade; /** * 我开始给朋友写信了 */ 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 类 package com.cbf4life.facade; 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(地狱路邮局)提供了一种新型的服务,客户只要把信的内容以及收信地址给他们,他们就会把信写好,封好。 并

文档评论(0)

linjuanrong + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档