- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章 面向对象基本原则 和模式 UML类图 UML(Unified Modeling Language),即统一建模语言,是图标式软件设计语言。 类图(Class diagram)是最常用的UML图,显示类、接口以及它们之间的静态结构和关系,用于描述系统的结构化设计。类图最基本的元素是类或者接口。 类的UML图 UML类图显示类的三个组成部分,第一是Java中定义的类名,第二个是该类的属性,第三个是该类提供的方法。 第一层为类的名称,第二层是类的属性,第三层表示的是类的方法或称为操作。 一个类图的类名是必须的 类的UML图 注意:属性和方法之前附加的可见性修饰符, “+”表示public,“-”表示private,“#”表示protected。省略这些修饰符表示具有package(包)级别的可见性。冒号后边表示数据的类型或方法的返回值类型。 如果是抽象类,类名以斜体表示。 UML类图及关系 接口的UML表示 依赖关系:虚线+箭头 关联关系:空心的菱形+实线箭头 组合关系:实心的菱形+实线箭头 泛化关系: 实线+空心的三角形,起始端是子类,空心三角形指向终点端的父类。 实现关系 实现关系的UML表示法:虚线+空心三角形。 发现变化,并封装变化 在软件设计之初,需要发现所要开发软件中可能存在或已经存在的“变化”,然后利用抽象的方式对这些变化进行封装。抽象是没有具体的代码实现,抽象代表了一种可扩展 。 参阅教材例9.1 单一职责原则和最少知识原则 在单一职责(Single Responsibility Principle, 简称为SRP)中,就一个类而言,应该仅有一个引起它变化的原因。也就是说,不要把变化原因各不相同的职责放在一起。 单一职责原则和最少知识原则 最少知识原则(Least Knowledge Principle, 简称为LKP)又叫迪米特法则(Law of Demeter,简写为LoD),就是说一个对象应当对其他对象有尽可能少的了解。就像我国古代老子所说的“使民无知”和“小国寡民”的统治之术,“是以圣人之治,虚其心,实其腹,弱其志,常使民无知无欲。”以及 “小国寡民……邻国相望,鸡犬之声相闻,民至老死,不相往来”。 开放-封闭原则 所谓“开放-封闭原则”(Open-Closed Principle),也称“开-闭原则”,就是让设计对扩展开放,对修改关闭。也就是说,不允许更改的是系统的抽象层,而允许更改的是系统的实现层。高层模块不应该依赖低层模块,抽象不应该依赖细节,使系统设计更为通用、更为稳定。面向抽象编程,这里的抽象主要指的是抽象类或接口。 开放-封闭原则 “开放-封闭原则”实质上是指当一个设计中增加新的模块时,不需要修改现有模块。 子类型能够替换基类型原则 子类型能够替换基类型原则也叫里氏代换原则(Liskov Substitution Principle ,简称LSP),里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现,且程序运行正常。 特别提醒:在进行设计的时候,我们尽量从抽象类继承,而不是从具体类继承。如果从继承等级树来看,所有叶子节点应当是具体类,而所有的树枝节点应当是抽象类或者接口。 程序参考例9.3 合成/聚合复用原则 “优先使用对象组合,而不是类继承”是面向对象设计的又一个原则。并不是说继承不重要,而是因为每个学习OOP的人都知道OO的基本特性之一就是继承,以至于继承已经被滥用了,而对象组合技术往往被忽视了。 一个类的成员变量可以是一个类创建的对象,那么该类创建的对象就包含了其他类的对象,也就是说该对象由其他对象组合而成了。对象与所包含的对象属于弱耦合关系,因为如果修改当前对象所包含的对象的类代码,不必修改当前对象的类的代码。 9.3 面向对象的设计模式 模式是针对特定场景下的特定问题的可重复、可表达的解决方案。 如果你期望成为一名出色的Java软件开发者,就应该学习设计模式。 面向对象模式代表了一种思想,而不是具体细节。 策略模式的定义和结构 The Strategy Design Pattern defines a family of algorithms, encapsulates each one, and makes them interchangeable. Strategy lets the algorithms vary independently from the clients that use it.(策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。) 算法就是需要完成某项任务的过程。算法是个过程—
您可能关注的文档
最近下载
- NB_T35106-2017 国家行业标准.pdf VIP
- 建设项目海绵设施施工验收标准.pdf VIP
- 2024-2025学年小学信息科技湘教版2024五年级上册-湘教版(2024)教学设计合集.docx
- 热控专业简介(基础系统介绍)(精品课件).ppt VIP
- 2025湘美版美术八年级上册第一单元第1课《假期视觉笔记》课件.pptx
- 2025-2030中国相容剂行业市场发展分析及前景趋势与投资机会研究报告.docx
- TSG 11-2020 锅炉安全技术监察规程.docx VIP
- 2023-2024年版中国运动康复产业白皮书.pdf
- 小学生抽屉整理课件.pptx VIP
- 打字员速录技能培训课件.pptx VIP
文档评论(0)