第8章 软件设计原则的与模式.ppt

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

代理设计模式 适配器设计模式 适配器也叫做包装器(Wrapper),它把一个类的接口变换成客户端所期望的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类可以在正常通信。 适配器设计模式 适配器设计模式 ?CAD系统中的绘图编辑器代码 Shape接口的代码: public interface Shape { // Java语言不支持多重继承 // Shape是目标角色,采用接口形式 public void draw(); } TextViewer类的代码: public class TextViewer { // TextViewer是适配者类,即源角色 public void display() { System.out.println(显示文本信息); } } 适配器设计模式 ?CAD系统中的绘图编辑器代码 TextShape类的代码:TextShape类是适配器类,属于系统搭建中的核心部分 public class TextShape implements Shape { // TextShape类是适配器类 private TextViewer adaptee; public TextShape(TextViewer adaptee) { super(); this.adaptee = adaptee; } // 适配器类直接委派源角色的display()方法 public void displayText() { adaptee.display(); } public void draw() { System.out.println(绘制文本框); } public void otherMethod() { System.out.println(还可以在适配器内补充其他方法); } } 8.5行为型设计模式 行为型设计模式是对在不同的对象之间划分责任和算法的抽象化。 行为型设计模式分为类的行为型模式和对象的行为型模式两种。 类的行为型模式使用继承关系在几个类之间分配行为,对象的行为型模式则使用对象的聚合关系来分配行为。 模板方法设计模式 模板方法设计模式把多个类的公共内容提取到一个模板中。 模板方法设计模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中完成,它使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 模板方法设计模式 模板方法设计模式?示例代码 Template类代码: public abstract class Template { protected String type; public Template(String type){ this.type=type; } //留给子类去实现的基本方法 abstract protected void usePhone (String type); //抽象类已经实现好的基本方法,子类不能重写 public final void finishWiFi(String type){ System.out.println(使用+type+品牌的手机完成上网任务); } //模板方法,是所有子类都要用到的一些基本功能 public final void accessWiFi (){ usePhone (type); } } 模板方法设计模式?示例代码 HuaWeiPhone类的代码: public class HuaWeiPhone extends Template { public HuaWeiPhone (String type) { super(type); } protected void usePhone (String type) { System.out.println(使用+type+手机); } } SamSungPhone类的代码: public class SamSungPhone extends Template { public SamSungPhone (String type) { super(type); } protected void usePhone (String type) { System.out.println(使用+type+手机); } } 模板方法设计模式?示例代码 客户端代码: public class Client { public static void main(String[] args) { Template t1=new HuaWeiPhone (Ascend D2); Template t2=new SamSungPhone (i930

文档评论(0)

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

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

1亿VIP精品文档

相关文档