- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 面向对象思想(选学) 主讲人:程裕强 本章学习目标 理解UML基本概念 掌握结构图和关系图 掌握开闭原则 掌握多少原则 了解高低原则 了解设计模式概念 掌握单例模式 掌握简单工厂模式 了解工厂方法模式和抽象工厂模式 了解适配器模式 5.1 UML简介 在面向对象分析与设计(Object-Oriented Analys and Design)中,统一建模语言(Unified Modeling Language ,UML)是核心工具。 UML是一种面向对象的建模语言,它是运用统一的、标准化的标记和定义实现对软件系统进行面向对象的描述和建模。为了方便理解面向对象思想,本书将借助UML来描述,但是UML的内容超出了本书的范围,读者可以查阅相关资料。下面简单介绍一下有关类、接口的结构图以及关系图。 Rational Rose是最为流行的UML建模商业收费软件,也可以使用免费且夸平台的Dia小软件。 5.1.1结构图 类的UML结构图是一个矩形,垂直地分为三个区。public用“+”、protected用“#”、private用“-”、缺省修饰符用“~”表示,UML图中修饰符是可以省略的。 顶层为类名层,具体类的类名使用正常字体,抽象类名使用斜体(在Dia工具中,具体类的类名是粗体,抽象类名是正常字体); 中间层为属性层(变量层),格式是“属性名:类型”,该层为可选层,按照需要列出重要的属性即可; 底层为方法层(操作层),格式是“方法名(参数列表):类型”,如果是静态方法加上下划线。 接口是特殊的抽象类,接口的UML结构图与类的结构图相似,如图5.2所示。不同之处是接口名需要使用interface标识,有些UML工具使用椭圆表示接口。 5.1.2关系图 泛化关系:UML中的泛化关系(Generalization)即是类的继承关系,使用“实线-空心三角箭头”表示,实线起点是子类,空心箭头指向父类。 实现关系:实现关系(Realization)即是接口与他的实现类间的关系,使用“虚线-空心三角箭头”表示,虚线起点为实现类,空心三角箭头指向接口。 关联关系:如果类A中的属性是类B(接口B)的实例,那么A和B就是关联关系(Association),称A关联于B,使用“实线-箭头”表示,实线起点是A类,箭头指向B。 依赖关系:如果类A的某个方法的参数或返回值的数据类型是类B(或接口B),那么A和B的关系是依赖关系(Dependency),称A依赖于B,使用“虚线-箭头”表示,虚线起点是A,箭头指向B。 5.2 开闭原则 开闭原则是基石,其他的设计原则是开闭原则的扩展。 开闭原则就是对扩展开放对修改关闭。在一个软件设计中增加新的模块时不需要修改原有模块。 在设计一个类时,尽量不要让该类面向具体的类,而是面向抽象类或接口,重要数据或操作在抽象类或接口中定义。 对抽象类或接口的修改应该是关闭的,因为一旦修改这些,可能导致所有的子类需要修改;增加抽象类或接口的子类应该是开放的,增加子类不需要修改其他抽象类或接口的代码。 例1:下面通过计算柱体体积问题来说明开闭原则。 假设现在需要计算圆柱体的体积,按照面向对象的思想定义圆Circle和圆柱体Cylinder1两个类。Circle具有area方法计算圆面积 package primer; public class Circle {//圆 private double radius; //半径 public Circle(double radius){ this.radius=radius; } public double area(){//圆面积 return Math.PI*radius*radius; } } 圆柱体Cylinder1具有volume方法计算圆柱的体积。Cylinder1类中,bottom属性是Circle声明的引用变量,在volume方法中通过bottom.area()*height求的体积。 package primer; public class Cylinder1 { private Circle bottom; //底面 private double height; //高 public Cylinder1(Circle bottom,double height){ this.bottom=bottom; this.height=height; } public double volume(){//体积 return bottom.area()*height; } } 假设现在客户需求发生变化,要求计算矩形柱体的体积。那么我们需要重新设计,先设计一个矩形类 package primer; public c
您可能关注的文档
- Internet应用基础 作者 耿增民 第4章 搜索引擎.ppt
- Internet应用基础 作者 耿增民 第5章 下载和存储Internet资源.ppt
- Internet应用基础 作者 耿增民 第7章 电子商务与网上购物.ppt
- Internet应用基础 作者 耿增民 第8章 网络多媒体.ppt
- Internet应用基础 作者 耿增民 第11章 网络安全.ppt
- Internet应用基础 作者 耿增民 第12章 网页制作和网站建设.ppt
- Internet应用与网页制作 作者 赵丰年 商建云 第06章.ppt
- Internet应用与网页制作 作者 赵丰年 商建云 第10章.ppt
- Internet应用与网页制作 作者 赵丰年 商建云 第11章.ppt
- IT项目管理 工业和信息化普通高等教育“十二五”规划教材立项项目 作者 郭宁 第1章 IT项目管理概述.ppt
- Java面向对象程序设计 作者 梁燕来 程裕强 第6章 异常处理.ppt
- Java面向对象程序设计 作者 梁燕来 程裕强 第7章 Java API.ppt
- Java面向对象程序设计 作者 梁燕来 程裕强 第8章 字符串.ppt
- Java面向对象程序设计 作者 梁燕来 程裕强 第9章 泛型与集合框架.ppt
- Java面向对象程序设计 作者 梁燕来 程裕强 第11章 多线程.ppt
- Java面向对象程序设计 作者 梁燕来 程裕强 第12章 JDBC.ppt
- Java面向对象程序设计 作者 梁燕来 程裕强 第14章 保留部分.ppt
- jQuery程序设计基础教程 工业和信息化普通高等教育“十二五”规划教材 作者 姚敦红 杨凌 张志美 李晓黎 等编著 第1章.ppt
- jQuery程序设计基础教程 工业和信息化普通高等教育“十二五”规划教材 作者 姚敦红 杨凌 张志美 李晓黎 等编著 第2章.ppt
- jQuery程序设计基础教程 工业和信息化普通高等教育“十二五”规划教材 作者 姚敦红 杨凌 张志美 李晓黎 等编著 第3章.ppt
最近下载
- 2025贵州毕城开发集团有限公司及下属子公司招聘10人笔试备考题库及答案解析.docx VIP
- 习思想概论期末复习材料 (公开版).docx VIP
- 2025年高考英语真题完全解读(全国一卷)(试卷点评).docx VIP
- 《轨道车及接触网作业车驾驶理论考试专业知识》第二章、动力传动系统.docx VIP
- 建筑工程图集 05G517:轻型屋面三角形钢屋架.pdf VIP
- 《勿忘国耻 吾辈自强》班会教学设计.docx VIP
- 新能源汽车项目商业计划书(范文参考).docx
- 2025-2026学年小学英语四年级上册(2024)闽教版(三起)(2024)教学设计合集.docx
- 地球物理勘探电法电磁法.ppt VIP
- 主板维修讲主板维修讲主板维修讲主板维修讲主板维修讲主板维修讲主板维修讲主板维修讲.ppt VIP
文档评论(0)