大学C语言第1讲C语言基础知识

上传人:re****.1 文档编号:567993486 上传时间:2024-07-23 格式:PPT 页数:25 大小:370.50KB
返回 下载 相关 举报
大学C语言第1讲C语言基础知识_第1页
第1页 / 共25页
大学C语言第1讲C语言基础知识_第2页
第2页 / 共25页
大学C语言第1讲C语言基础知识_第3页
第3页 / 共25页
大学C语言第1讲C语言基础知识_第4页
第4页 / 共25页
大学C语言第1讲C语言基础知识_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《大学C语言第1讲C语言基础知识》由会员分享,可在线阅读,更多相关《大学C语言第1讲C语言基础知识(25页珍藏版)》请在金锄头文库上搜索。

1、面向对象的分析与设计 课程学习的内容l lOO设计原则l lUML设计图及Rose Rational 工具l lOO设计模式l l典型项目的分析与设计 学习方法l l掌握主要掌握主要OOOO原则的原理和应用要点原则的原理和应用要点 改变改变javajava编程习惯编程习惯l l学会设计学会设计 RationalRational工具的使用;工具的使用; 掌握类图、用例图、顺序图、活动图的设计掌握类图、用例图、顺序图、活动图的设计l l熟练掌握熟练掌握MVC MVC 设计方法设计方法l l 熟练掌握数据库编程熟练掌握数据库编程l l 深化了解深化了解APIAPI,深化基于,深化基于APIAPI的编

2、程的编程l l 反复实践典型模式应用于项目的分析和设计反复实践典型模式应用于项目的分析和设计参考书l l面向对象软件工程与 UML, 李飞跃, 人民邮电出版社 ( 高职教材 )l lUML与软件建模 , 徐宝文,清华大学出版社(重点大学教材)l l面向对象设计原理与模式,(美)Dale Skrien著, 清华大学出版社 (国外经典教材)l l Java设计模式, 耿祥义,清华大学出版社l l大话设计模式,程杰,清华大学出版社考核基于典型项目的考察:l l项目的分析与方案设计l lUML典型图l l项目代码中基本原则的应用l l项目设计中模型的使用OOP编程要点 OOPOOP追求的目标追求的目标

3、: 可用性、完整性、健壮性、有效性、可伸缩性、可读性、 可重用性、简洁性、可维护性、可扩充行 OOP 典型特点 : 封装性、继承性、重载、属性和修饰符、多态、重构、抽象类 接口、集合、泛型、委托与事件 实现一个最简单的实例l l计算立体型几何体体积 要点: 分析其中的耦合性、 程序的复用性 “脏代码”分析 OO基本原则单一职责原则单一职责原则要点要点: : 开开- -闭原则闭原则依赖倒转原则依赖倒转原则里氏替换原则里氏替换原则面向抽象原则面向抽象原则多用组合少用继承原则多用组合少用继承原则迪米特原则迪米特原则高内聚高内聚/ /低耦合原则低耦合原则合成合成/ /聚集复用原则聚集复用原则接口隔离原

4、则接口隔离原则单一职责原则(SRP原则)l l就一个类而言,应该只有一个引起它变化的原因;就一个类而言,应该只有一个引起它变化的原因;l l失败的案例:失败的案例: 界面处理类界面处理类+ +数据库操作数据库操作+ +文件读写文件读写+ +业务流程控制业务流程控制 类比:类比: 多功能手机、集成主板的电脑多功能手机、集成主板的电脑坏一处就全坏坏一处就全坏l l经验: 类的设计倾向于越小越好l l解释: 如果一个类承担的职责过多,就等于把这些职责耦合在一起。一个职责的变化可能会引起消弱或抑制这个类完成其他职责的功能。这种耦合会导致脆弱的设计。当变化发生时,设计会遭到意想不到的破坏。开-闭原则(核

5、心原则)l l软件实体(类、模块、方法)应该可以扩展,但不可以修改;l l换个说法: 类对扩展是开放的, 对修改是封闭的;l l用extends 和implements等开放,用private封闭l l实际使用: 1.随时准备修改:改变是合理的; 2.原来的代码一般不要改动,合理的方法是 基于原先的代码产生新的类 3.设计之初就准备好应对变化,用抽象来隔 离变化,减少耦合。开-闭原则的运用:l l写一个相对固定的内核;l l不断产生新的类,当修改发生时;l l 新的类给予接口或抽象类创建;理解: 面向接口编程里氏替换原则l l子类型必须能替换掉它们的父类型分析: “企鹅不是鸟” 子类型必须包含

6、父类型的全部特征 依赖倒转原则l l抽象不应该依赖于细节,细节应该依赖于抽象; - 针对接口编程,不要对实现编程l l解释: 1.高层类不应该依赖低层类;两者都应依赖于 抽象; 2.抽象不应该依赖细节;细节应该依赖抽象l l反转实例: 电话指挥修电脑,谁依赖谁?l l抽象与实现: 电脑主板-总线插槽-PIC卡的实例 抽象不依赖细节,细节依赖抽象。依赖止于接口-用接口消除强耦合AB依赖AB依赖I依赖用接口消除强耦合OO的基本原则l l8989、面向对象的基本设计原则、面向对象的基本设计原则1)LSP(The 1)LSP(The LiskovLiskov Substitution Substitu

7、tion Principle):LiskovPrinciple):Liskov替换原则替换原则子类不能添加任何父类没有的附加约束。子类对象必须可以替换基类对象。子类不能添加任何父类没有的附加约束。子类对象必须可以替换基类对象。在可能的情况下,由抽象类在可能的情况下,由抽象类( (接口接口) )继承。继承。抽象类与具体类抽象类与具体类只要有可能,不要从具体类继承;只要有可能,不要从具体类继承;行为集中的方向是向上的行为集中的方向是向上的( (抽象类抽象类) );数据集中的方向是向下的数据集中的方向是向下的( (具体类具体类) )。l l2)OCP(The Open-Close Principle

8、):2)OCP(The Open-Close Principle):开放开放- -封闭原则封闭原则对于扩展是开放的对于扩展是开放的(Open for extension)(Open for extension)对于更改是封闭的对于更改是封闭的(Closed for modification)(Closed for modification)关键在于抽象关键在于抽象抽象预见了可能的所有扩展抽象预见了可能的所有扩展( (闭闭) )由抽象可以随时导出新的类由抽象可以随时导出新的类( (开开) )OCPOCP是是OODOOD中很多说法的核心。中很多说法的核心。LSPLSP是是OCPOCP成为可能的主要

9、原则之一。成为可能的主要原则之一。3)SRP3)SRP单一职责原则单一职责原则(The Single Responsibility Principle)(The Single Responsibility Principle)一个类,应该仅有一个引起它变化的原因。一个类,应该仅有一个引起它变化的原因。体现了内聚性体现了内聚性(Cohesion)(Cohesion):一个模块的组成元素之间的功能相关性。:一个模块的组成元素之间的功能相关性。违反违反SRPSRP原则会带来物理依赖的缺点。原则会带来物理依赖的缺点。使得每个类仅有一个职责。使得每个类仅有一个职责。4)ISP4)ISP接口隔离原则接口隔

10、离原则(The Interface Segregation Principle)(The Interface Segregation Principle)客户应该仅知道所需要要的接口。客户应该仅知道所需要要的接口。一个类实现多个接口,避免一个类实现多个接口,避免“ “肥接口肥接口(fat interface)”(fat interface)”使用委托分离接口使用委托分离接口,Adapter,Adapter模式模式; ;使用多重继承分离接口。使用多重继承分离接口。本质:本质:使用多个专门的接口比使用单一的接口好。使用多个专门的接口比使用单一的接口好。一个类对另一个类的依赖性应当是建立在最小的接口

11、上的。一个类对另一个类的依赖性应当是建立在最小的接口上的。避免接口污染避免接口污染(Interface Pollution)(Interface Pollution)5)DIP5)DIP依赖倒置原则依赖倒置原则(The Dependency Inversion Principle)(The Dependency Inversion Principle)高层模块不依赖于低层模块,二者都依赖于抽象。高层模块不依赖于低层模块,二者都依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。针对接口编程,而不是针对实现编程。针对接口编程,而不是针对实现编程。Boo

12、chBooch:所有结构良好面向对象架构都具有清晰地层次定义,每个层次通过一个定义良好的、受控的接口向外提供了一组类聚的服务。:所有结构良好面向对象架构都具有清晰地层次定义,每个层次通过一个定义良好的、受控的接口向外提供了一组类聚的服务。6)6)启发式原则启发式原则依赖于抽象依赖于抽象依赖关系都应终止于抽象类或者接口。依赖关系都应终止于抽象类或者接口。任何变量都不应该拥有指向具体类的指针或者引用。任何变量都不应该拥有指向具体类的指针或者引用。任何类都不应该从具体类派生。任何类都不应该从具体类派生。任何方法都不应该改写其任何基类中已经实现的方法。任何方法都不应该改写其任何基类中已经实现的方法。U

13、ML中的类图l l类图中的6种关系 1. 继承(泛化)关系; 2. 实现关系; 3.依赖关系; 4. 关联关系; 5. 组合关系 6. 聚合关系; l l基本画法: 1. 指向实体的关系用实线; 指向虚体(接 口和抽象类)的关系用虚拟线; 2. 箭头指向时间上先定义的类 UML图类图 案例分析l l好友管理系统中的类图分析l l好友管理系统中消息传送过程分析 - 登录过程分析 - 查询过程分析 - 增加过程过程序列图系统的动态过程分析l l时序图时序图l l时序图展示了几个对象之间的动态交互关时序图展示了几个对象之间的动态交互关系。它主要是用来显示对象之间发送消息的系。它主要是用来显示对象之间

14、发送消息的顺序,它还显示了对象之间的交互,即系统顺序,它还显示了对象之间的交互,即系统执行的某一特定点所发生的事。执行的某一特定点所发生的事。时序图例子时序图例子2时序图例子3时序图中包括如下元素:类角色,生命线,激活期和消息时序图中包括如下元素:类角色,生命线,激活期和消息1 1,类角色,类角色(Class Role)(Class Role)类角色代表时序图中的对象在交互中所扮演的角色,位于时类角色代表时序图中的对象在交互中所扮演的角色,位于时序图顶部和对象代表类角色。类角色一般代表实际的对象序图顶部和对象代表类角色。类角色一般代表实际的对象2 2,生命线,生命线(Lifeline)(Lif

15、eline)生命线代表时序图中的对象在一段时期内的存在。时序图中生命线代表时序图中的对象在一段时期内的存在。时序图中每个对象和底部中心都有一条垂直的虚线,这就是对象的生每个对象和底部中心都有一条垂直的虚线,这就是对象的生命线,对象间命线,对象间 的消息存在于两条虚线间。的消息存在于两条虚线间。3 3,激活期,激活期(Activation)(Activation)激活期代表时序图中的对象执行一项操作的时期,在时序图激活期代表时序图中的对象执行一项操作的时期,在时序图中每条生命线上的窄的矩形代表活动期。它可以被理解成中每条生命线上的窄的矩形代表活动期。它可以被理解成C C语言语义中一对花括号语言语

16、义中一对花括号“ “”中的内容中的内容4 4,消息,消息(Message)(Message)消息是定义交互和协作中交换信息的类,用于对实体间的通消息是定义交互和协作中交换信息的类,用于对实体间的通信内容建模,信息用于在实体间传递信息。允许实体请求其信内容建模,信息用于在实体间传递信息。允许实体请求其他的服务,类角色通过发送和接受信息进行通信他的服务,类角色通过发送和接受信息进行通信设计时序图一般方法l l尽力保持消息的顺序从左到右排列尽力保持消息的顺序从左到右排列 l l将分类器分层将分类器分层 l l避免建模对象避免建模对象Destruction Destruction l l直接创建对象直接创建对象 l l为参数说明类型为参数说明类型 l l类的消息实现为静态操作类的消息实现为静态操作 l l当返回值非常明显时就不要对返回值建模,返回值的显示当返回值非常明显时就不要对返回值建模,返回值的显示是使用带返回值标记的虚线箭头,返回值是可选的。是使用带返回值标记的虚线箭头,返回值是可选的。l l为返回值注明类型为返回值注明类型 l l明确地为简单值标明实际值明确地为简单值标明实际值

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号