



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象课程答辩面向对象是一种编程思想,它以人类对现实世界的观察为基础,发展出了几个关键的概念:多态、封装、继承。大部分时间,我们可以以面向过程作为指导思想编写程序,但是当我们所编写的软件系统变得庞大和复杂的时候,面向对象就更加合适。使用面向对象的方式来编写程序时,我们经常会定义一个一个的类,并且放在不同的文件中,然后管理这些类之间的关系。面向对象主要思想是:识别对象,分配职责,建立交互, 封装变化, 隔离变化, 执行变化 面向对象的主要特征为:封装,继承,多态一、封装: 1.定义从数据角度: 将一些基本数据类型复合成一个自定义类型。从行为角度: 向类外提供功能,隐藏实现的细节。 从设计角度: 分而治之,封装变化,高内聚,低耦合(1) 分而治之- 将一个大的需求分解为许多类,每个类处理一个独立的功能。 - 拆分好处:便于分工,便于复用,可扩展性强。例如:雕版印刷术与活字印刷术对比雕版印刷术活字印刷术“字”“字”“字”“字”“字”“字”“字”“字”“字”“字”“字”“字 ” “字”“字”“字”“字 ” “字”“字”“字”“字 ” “ 字 ” “ 字 ”“ 字”“字 ”“字”“字”“字”“字”“字”“字”“字”“字”“字”“字”“字”“字”一个字错,整个雕版作废一个字错,替换错误字(2) 封装变化- 变化的地方独立封装,避免影响其他类。(3) 高 内 聚- 类中各个方法都在完成一项任务(单一职责的类)。 (4) 低 耦 合 - 类与类的关联性与依赖度要低(每个类独立),让一个类的改变,尽少影响其他类。例如:硬件高度集成化,又要可插拔最高的内聚莫过于类中仅包含1个方法,将会导致高内聚高耦合。最低的耦合莫过于类中包含所有方法,将会导致低耦合低内聚。二、继承: 1.定义 :重用现有类的功能与概念,并在此基础上进行扩展。 2.作用:隔离客户端代码与实现方式(隔离用与做) 例如:交通工具隔离了人与飞机/火车.的变化class Vehicle: 交通工具 def transport(self, str_pos): # 不确定具体操作,人为制造错误 raise NotImplementedError()# 提醒子类必须使用class Car(Vehicle): def transport(self, str_pos): print(行驶到, str_pos)class Airplane(Vehicle): def transport(self, str_pos): print(飞到, str_pos) 图形隔离了图形管理器与圆形/矩形.的变化 class Graphic: 图形管理器 def get_area(self): pass class Circle(Graphic): 圆形 def _init_(self,radius): self.radius = radius def get_area(self): return self.radius * 2 * 3.14 class Rectangle(Graphic): 矩形 def _init_(self, length,width): self.length = length self.width = width def get_area(self): return self.length * self.width公司的组织架构:董事长行政中心营销中心技术中心人力资源行政部后勤部销售部策划部渠道部研发部检测部产品部售后部3.优点: 一种代码复用的方式,以层次化的方式管理类。4.缺点: 耦合度高5.作用:隔离客户端代码与功能的实现方式。6.适用性:多个类在概念上是一致的,且需要进行统一的处理。三、多态:1.定义:调用父一个方法,执行子类方法,不同实现方式不一样,所以表现形态就不一样. 2.作用: 继承将相关概念的共性进行抽象,多态在共性的基础上,体现类型的个性化(一个行为有不同的实现)。 例如: 图形管理器调用图形的计算面积方法,执行的是圆形/矩形的计算面积方法. def get_total_area(self): 计算总面积 :return: total_area = 0 for item in self._graphics: total_area += item.get_area() 图形的面积 return total_area3.优点:增强程序扩展性,体现开闭原则。 四、面向对象设计原则: 开闭原则(Open Closed Principle):增加新功能,不修改客户端代码. 比如:某个技能,增加新影响效果,只要创建新的效果类,不需要修改其他代码. 单一职责(Single Responsibility Principle):每个类有且只有一个改变的原因. 比如:技能系统中,每个类的职责明确. 依赖倒置(Dependency Inversion Principle):使用抽象(父),而不是用具体(子) 比如:技能释放器,调用的是影响,而不是伤害生命/降低防御力. 组合复用(Composite Reuse Principle):使用关联关系,代替继承关系. 比如:技能释放器与影响效果,使用了关联关系. 里氏替换(Liskov Substitution Principle):父类出现的地方,可以被子类替换 替换后,保持原有功能. 比如:技能释放器使用影响效果,但可以被所有具体效果替换. 迪米特法则(Law of Demeter):低耦合 比如:影响效果的变化,不影响释放器.例如:面向过程与面向对象是不同的编程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江省台州市路桥区新桥中学浙教版高一信息技术必修一教案
- 2025年粮站员工劳动合同范本
- 2025【合同范本】夫妻双方财产划分合同
- 2025年上海市租房合同范本(官方版)
- 印刷厂叉车工工作制度
- 2025共同借款合同范本
- 化肥厂车间工具管理规章
- 2025届毕业生需关注的合同法关键条款
- 《短歌行》和《归园田居》-出与入诗人的责任与选择比较鉴赏 教学设计 2024-2025学年统编版高中语文必修上册
- 化肥生产技术改造合同协议
- 机加工安全生产培训考核试题及答案(班组级)(精)
- 电梯从业证考试试题及答案解析
- 第二十四届上海市青少年计算机创新应用竞赛 python校内选拔试题及答案
- 2024年武汉商学院公开招聘辅导员笔试题含答案
- 托育园厨师安全工作责任书
- 《编程猫系列》第1课-Hello-编程猫(课件)
- GB 16899-2011自动扶梯和自动人行道的制造与安装安全规范
- 非典型骨折课件
- 封闭区倒塌围墙修复施工方案
- 户口本翻译样本-Word范文-Word范文
- 企业融资计划书2022
评论
0/150
提交评论