当前位置:文档之家› 5面向对象设计

5面向对象设计

面向对象的设计方法与C++编程

北京邮电大学200X-200X学年第一学期 《面向对象的设计方法与C++编程》期末考试试卷+扩展+复习题 试题一:填空题(没空一分,共20分) 请在括号内填入你认为正确的内容。 1.软件工程是指导(计算机软件)开发和维护的(工程学科)。 2.应用软件工程方法开发软件系统的根本目的是为了改善下述四项软件品质因素: 提高所开发的软件系统的(效率); 降低所开发的软件系统的(成本); 改善所开发的软件系统的(质量); 缩短所开发的软件系统的(开发周期)。 3.抽象的对象模型由(属性)和(方法)两个部分构成。 4.一个消息必须具备的两个要素是(接受消息的对象标识)和(接受消息的对象的方 法标识)。 5.一个对象拥有另一个对象的(部分)或(全部)的属性和方法的关系则称为(继 承)关系。 6.失去(创建具体对象实例的(制造对象))能力的类成为抽象类。 7.一个类的属性不能出现对象拷贝则被称为(类属性)。 8.面向对象技术的三大特征是(封装)、(继承)和(多态)。 9.共生包容关系中的被包容类对象与包容类对象是(同时连带)生成的。 10.同时出现在两个具有关联关系的对象内的相同属性被称为(连接属性)。 课程复习--补充题: 1.软件的生存周期是一个软件产品从(定义)、(开发)、(使用)到(废弃)的时 间的总合。 2.C++语言中的静态成员函数是(类方法)的具体实现。 3.连接属性是(关联/链接)关系的两个对象内的属性。 4.边界类与(actor(角色))对呈一一对应关系。 5.复合聚合关系中的(聚合)类对象极其依赖(被聚合)类对象,在实现上往往具有 被同时(构造)的特征,因而具有极高的(耦合度)。 试题二:是非判断题(每题1分,共20分) 请在题后的括号内填入√(你认为正确时)或×(你认为错误时)。 1.消息必须含有返回信息。(错) 2.一个类必然具有生成对象的能力。(错)(抽象类不具备) 3.在包容关系中的被包容类也具有封装性。(对) 4.关联关系只是一个动作的抽象。(错) (表示两个类之间的联系,通过这种联系,一个类可以访问到另外一个类的属性和方法。) 5.一个类也可以接收消息。(对) 6.关联关系中的作用名标识了该关联关系的终点对象的恰当地位。(对)

软件工程 第八章 面向对象的设计方法

第八章面向对象的设计方法 本章采用基于UML的面向对象设计方法的将分析模型转换为设计模型。如第五章所述,面向对象的分析模型主要由顶层架构图、用例与用例图、领域概念模型构成;设计模型则包含以包图表示的软件体系结构图、以交互图表示的用例实现图、完整精确的类图、针对复杂对象的状态图和用以描述流程化处理过程的活动图等。为完成这一转换过程,设计人员必须处理以下任务: (1)针对分析模型中的用例,设计实现方案。实现方案用 UML交互图表示。 (2)设计技术支撑设施。在大型软件项目中,往往需要一些技术支撑设施来帮助业务需求层面的类或子系统完成其功能。这些设施本身并非业务需求的一部分,但却为多种业务需求的实现提供公共服务。例如,数据的持久存储服务、安全控制服务和远程访问服务等。在面向对象设计中,需要研究这些技术支撑设施的实现方式以及它们与业务需求层面的类及子系统之间的关系。 (3)设计用户界面。 (4)针对分析模型中的领域概念模型以及第(2)、(3)两个步骤引进的新类,完整、精确地确定每个类的属性和操作,并完整地标示类之间的关系。此外,为了实现软件重用和强内聚、松耦合等软件设计原则,还可以对前面形成的类图进行各种微调,最终形成足以构成面向对象程序

设计的基础和依据的详尽类图。 面向对象的软件设计过程如图8-1-1所示。 图 8-1-1 面向对象的软件设计过程 第一节设计用例实现方案 UML 的交互图(顺序图、协作图)适于用例实现方案的表示。因此,本节首先介绍交互图的语言机制,然后探讨用例实现方案的设计方法。该设计方法包含如下3个步骤: (1)提取边界类、实体类和控制类; (2)构造交互图; (3)根据交互图精华类图。 一、顺序图 顺序图用来描述对象之间动态的交互关系,着重表现对象间消息传递的时间顺序。在顺序图中,参与交互的对象位于顶端的水平轴上,垂直轴表示时间,时间推移的方向是自上而下的。顺序图中的对象一般以“对象

面向对象分析设计小结

?1、面向对象方法的基本观点: ?Coad-Y ourdon认为:面向对象=对象+类+继承+通信。 ?2、面向对象方法的特点包括: ?(1)、符合人们对客观世界的认识规律; ?(2)、对需求变化具有很强的适应性; ?(3)、支持软件复用; ?(4)、可维护性好。 ?3、对象、类、封装、继承、消息、多态性的基本概念。 对象是客观世界中具有可区分性的、能够唯一标识的逻辑单元,是现实世界中的一个事物(站在计算机技术角度,即对事物的模拟)。 类是一组具有相同属性和相同操作的对象的集合。 封装是把对象的属性和操作结合在一起,组成一个独立的单元。 继承是指子类(派生类、特化类)自动拥有其父类(基类、泛化类、超类)的全部属性和操作,即一个类可以定义为另一个更一般的类的特殊情况。 消息是对象之间采用消息传递来发生相互作用—互相联系、互发消息、响应消息、协同工作,进而实现系统的各项服务功能。 多态性是一种方法,使在多个类中可以定义同一个操作或属性名,并在每一个类中有不同的实现。 ?4、面向对象系统开发过程。 ?5、运用名词词组法来定义类(对象): ?例:音像商店出租/出售业务信息系统中的类的确定。 ?总目标:?A.提供及时培训。?B.实施的系统必须友好,易学易用。?C.实施的系统必须考虑安全问题。

?具体目标: ?1.1.1 提供一个自动系统协助顾客出售/出租结帐。 ?2.1.1 提供和维护一个自动的会员数据库。?a. 按要求提供最新会员信息。? b. 有添加、改变、删除会员信息的能力。 2.1.2 提供会员信息报表(但不限于)?a. 最少光顾的会员。?b. 最经常光顾的会员。?c. 有问题会员(欠钱,出租过期)? 4.1.1 提供、维护出售和出租项的库存数据库。?a. 按要求提供最新库存信息?b. 有添加、改变、删除库存信息(出售和出租)的能力 4.1.2 提供库存信息报表(但不限于)?a. 最不受欢迎的出租项?b. 最受欢迎的出租项?c. 过期的出租项?d. 出售和出租项的“订购”产品(采购报表) 5.1.1 提供出售报表(但不限于)?a. 用产品码表示的一段时间(天、星期、月)内销售情况?b. 用产品码表示的一段时间(天、星期、月)内出租情况相应的侯选对象清单为:安全问题、自动系统、顾客出售/出租结帐、会员数据库、会员信息、会员信息报表、库存数据库、出售和出租项、库存信息、库存信息报表、采购报表、出售报表。 ?6、对多值属性的处理方法:用部分-整体方法。 例:发票/发票行 第2章统一建模语言UML 1、UML描述的软件基本模型:用例视图、逻辑视图、构件视图、进程视图、 部署视图 2、UML的基本符号。 3、RUP项目开发过程的特征:用例驱动的系统、以体系结构为中心、螺旋 上升式的开发过程、以质量控制和风险管理为保障措施。

图书管理系统面向对象设计方法

目录 1.图书管理系统开发背景 (2) 2. 图书管理系统设计 (2) 2.1任务目标 (2) 2.2 图书管理系统需求描述 (2) 2.2.1系统组成 (2) 2.2.2图书管理系统功能描述 (3) 2.2.3 系统参与者 (3) 2.3 图书管理系统功能模型 (3) 2.3.1 功能模型描述 (3) 2.3.2功能模型的用例图 (3) 2.3.2.1读者借书等的用例图 (3) 2.3.2.2图书馆管理员处理借书、还书等的用例图 (4) 2.3.2.3系统管理员进行系统维护的用例图 (5) 2.4 图书管理系统对象模型 (7) 2.4.1 对象模型描述 (7) 2.4.1.1读者Borrower类 (7) 2.4.1.2系统管理员Administrator类 (7) 2.4.1.3图书管理员Librarian类 (7) 2.4.1.4书目Title类 (7) 2.4.1.5其他类 (7) 2.4.2 类图 (6) 2.5 图书管理系统动态模型 (9) 2.5.1 图书管理系统动态模型 (9) 2.5.2图书管理系统系列图 (10) 2.5.2.1系统管理员添加书籍的时序图 (10) 2.5.2.2系统管理员添加借阅者帐户的时序图 (10) 2.5.2.3系统管理员删书目的时序图 (11) 2.5.2.4图书管理员处理书籍借阅的时序图 (11) 2.5.2.5 读者查询籍息的时序图 (12) 2.5.3图书管理系统活动图 (12) 2.5.3.1借阅者的活动图 (12) 2.5.3.2图书管理员的活动图 (14) 2.5.3.3系统管理员维护借阅者帐户的活动图 (15) 2.5.3.4系统管理员进行书目信息维护的活动图 (16) 2.5.3.5系统管理员维护书籍信息的活动图 (17)

面向对象设计七大原则-步骤资料

面向对象设计原则 A. 面向对象设计七大原则 a) 开闭原则 ? 软件实体对扩展开发,对修改关闭。 ? 当软件系统面对着新的需求的时候,系统的设计是稳定的。 ? 满足“开-闭”原则系统的优点: 1. 通过扩展已有的模块,提供新的行为,满足新需求,使得变化中的软件系统有一定的适应性和灵活性 2. 已有的软件模块,特别是最重要的抽象层模块不能再修改,这就使得变化中的模块有一定的稳定性和延续性. ? 怎样才能做到开闭原则? 1. 抽象化,为系统定义一个不再更改的抽象设计,这个设计预见了所有可能的变化。满足了开闭原则的“闭” 2. 找到系统中变化的部分,把可变性封装起来。使用继承或者其他方式来封装变化,将变化封装在一个方法中或者一个类中。 b) “里氏转换”原则(LSP)

? 定义:如果一个软件实体使用一个基类的话,那么一定适合于它的子类。也就是基类出现的地方,子类一定可以出现,替换后软件行为不会发生变化,而且它根本不能识别出基类和子类对象的区别。? 里氏转换原则是对开-闭原则的补充。违反了里氏原则,有就违反了开闭原则;反之不成立。 ? 里氏转换原则是继承复用的基础.只有当衍生类可以替换掉基类,软件功能不会受到影响的时候,基类才能被真正复用,而衍生类才能在基类的基础上增加新的行为。 ? 理氏转换原则是代理模式成立的基础.代理模式和真实主题模式都是抽象主题角色的子类。客户端只知道抽象主题,而代理主题可以替代抽象主题出现在任何地方 c) “依赖倒转”原则 ? 抽象不应该依赖于细节,细节应该依赖于抽象. ? (高层模块不应该依赖于底层模块,两个都依赖于抽象) ? 通俗地说:面向接口编程,不要对实现编程. d) “接口隔离”原则 ? 使用专门的接口比使用一个总的接口好;一个类对另外一个类的依赖性应当建立在最小的接口上的.

1面向对象程序设计方法简介(1课时)

3.1面向对象程序设计方法简介(1课时) 教学目标: 1、 掌握面向对象程序设计语言的基本方法。 2、 熟悉对象、属性、事件、事件处理等概念,并学会运用(操作层面)。 教材分析: 学生初次接触面向对象的程序设计,对象、属性、类、事件和事件处理等概念都很陌生,教师可以通过一个具体、简单的vb 实例进行分析、探究,使学生掌握它们的含义及其关系,为进一步学习可视化的程序设计,在vb 中建立一个应用程序打下良好的基础。教学过程中可以采用讲授法、演示法和讨论教学法。教学时应该淡化名词、概念等抽象的内容,多一些具体的演示、讲解和分析。 学生分析 通过第一章的学习,学生已经从宏观上对算法的概念、设计和表达方法有了具体的了解。再加上第四章中的常量、变量、函数以及表达式等知识点,学生对于vb 语言表达式的计算有了初步的了解。 教学重点:对象、属性、类、事件和事件处理等概念 教学难点:面向对象程序设计的概念 教学流程 一、 复习引入 1、校对活动手册实践五的内容P10 2、复习:完成P92页练习1和2 (适当的缩减时间,快速的过去) 3、在我们学习了vb 语言的常量和表达式之后,我来学习一下vb 的界面设计(展示圆的面积计算机例子),这个就是用vb 工具开发的,Vb 是一个面向对象程序设计(OOP )开发工具。那什么是“面向对象程序设计” ? 二、 对象、属性 1、对象: 对象的概念来源于生活。在现实生活中,我们随时随地都在和对象打交道,我们骑的车、看的书以及我们自己,在一个VB 程序员眼中无一例外都是对象。 结合课本中的P48页的图312,构成这个应用程序的图形界面的,是以下各个对象。 对象:图形1 对象:标签1 对象:标签2 对象:命令按钮1 对象:文本框2 对象:文本框1 对象:窗体1

面向对象七大基本设计原则

面向对象七大基本设计原则 面向对象设计原则是OOPS(Object-Oriented Programming System,面向对象的程序设计系统)编程的核心。在设计面向对象的程序的时,模式不是一定要套的,但是有一些原则最好是遵守。这些原则已知的有七个,包括:单一职责原则、开闭原则、里氏代换原则、依赖注入(倒转)原则、接口分离原则、迪米特原则、合成聚合复用原则。 原则一单一职责原则 单一职责原则(SRP:Single responsibility principle)又称单一功能原则 核心:解耦和增强内聚性(高内聚,低耦合)。 描述:类被修改的几率很大,因此应该专注于单一的功能。如果你把多个功能放在同一个类中,功能之间就形成了关联,改变其中一个功能,有可能中止另一个功能,这时就需要新一轮的测试来避免可能出现的问题。 原则二里氏替换原则 里氏替换原则(LSP:Liskov Substitution Principle) 核心:在任何父类出现的地方都可以用他的子类来替代(子类应当可以替换父类并出现在父类能够出现的任何地方) 四层含义: (1)子类必须完全实现父类的方法。在类中调用其他类是务必要使用父类或接口,如果不能使用父类或接口,则说明类的设计已经违背了LSP原则。 (2)子类可以有自己的个性。子类当然可以有自己的行为和外观了,也就是方法和属性 (3)覆盖或实现父类的方法时输入参数可以被放大。即子类可以重载父类的方法,但输入参数应比父类方法中的大,这样在子类代替父类的时候,调用的仍然是父类的方法。即以子类中方法的前置条件必须与超类中被覆盖的方法的前置条件相同或者更宽松。 (4)覆盖或实现父类的方法时输出结果可以被缩小。 原则三依赖注入原则 依赖注入原则(DIP:Dependence Inversion Principle)别名:依赖倒置原则或依赖反转原则 核心:要依赖于抽象,不要依赖于具体的实现 三层含义: (1)高层模块不应该依赖低层模块,两者都应该依赖其抽象(抽象类或接口);(2)抽象不应该依赖细节(具体实现);

软件工程-面向对象的分析设计方法

实验三:面向对象的分析设计方法 一、实验目的:学习用Rose或Together等工具绘制UML图,通过实际绘制UML 图加深理解UML,了解利用UML进行面向对象的分析、建模和面向对象系统设计的方法。 二、实验内容:利用Rose绘制给定的用例图、包图、活动图、序列图、协作图、类图。 三、实验方法和步骤: (一)Rose绘图环境的使用 (二)人事档案管理系统的面向对象分析 首先明确问题域和系统责任,目标系统的主要功能是:人事信息的变动管理(增、删、查、改、打),人事信息查询检索、分类汇总、统计报表,用户管理、登录,下属部门数据的维护、数据备份与恢复。根据系统的这些总体信息,可以确定系统的参与者(角色)和用例。 (1)确定系统的参与者 该系统的参与者(系统用户)是进行日常人事档案信息管理的操作员和进行基础数据维护与数据备份(恢复)的管理员。 (2)确定系统用例 可将系统分为如下用例:人事档案信息管理用例、系统账户管理用例、部门数据维护用例、系统维护用例。 ①人事档案信息管理用例:该用例的参与者是一般的操作员,需要经过系统登录后才能正式进入系统,完成人事档案信息的变动管理、分类汇总统计、报表打印等功能。 ②系统账户管理用例:完成系统用户的增、删、查、改、打功能。 ③部门数据维护用例:完成部门信息的增、删、查、改、打功能。 ④系统维护用例:完成系统数据的备份和恢复功能。 (3)识别系统中的类 可从类的表现形式或分类来识别类,类的表现形式有:外部实体、事物、事件、角色、组织单元、场地、结构。类又分为实体类、边界类和控制类。 ①参与者相关的类。

本系统的参与者是系统用户,包含的属性有登录名、密码、类别(操作员或管理员)、操作权限等。 ②其他外部实体(数据库)类。 ●员工人事档案信息类,包含的属性有员工编号、姓名、所在部门、性别、年龄等。 ●部门信息类,包含的属性有部门编号、部门名称等。 ③边界类。 ●系统用户登录窗口、系统主界面窗口、用户信息管理窗口。 ●员工人事档案信息管理窗口、人事信息查询显示窗口、分类统计窗口、人事信息报表打印窗口。 ●管理员部门信息管理窗口、管理员系统备份与恢复窗口。 ④控制类的识别一般在面向对象设计时进行。 (4)确定系统的包 根据系统的主要功能,将系统分成三个一级包:人事档案信息管理、账户管理、系统数据管理。人事档案信息管理的下级包为:人事信息编辑、分类汇总统计、报表打印。系统数据管理的下级包为:部门数据维护、数据备份与恢复。 (5)绘制用例图 图账户管理

面向对象方法课程设计

课程设计指导书 一、课程设计目的 《面向对象程序设计(C++)》是计算机专业的一门专业基础课,主要内容是介绍C++语言中的数据类型、运算、语句结构及其程序设计的基本方法;《面向对象方法课程设计》是在学生学习完上述课程以后进行的设计性实验课程,目的是使学生能够更好地掌握C++程序设计语言,更深地理解面向对象程序设计的基本概念与方法,从而学会利用C++语言解决一般应用问题,并为后续专业课程的学习奠定程序设计基础。通过做课程实验,学生应能加深对讲授内容的理解,累积经验、学会独立上机调试程序;并且逐步达到综合运用封装、继承和多态等C++难点知识,真正掌握C++语言的精华,从而熟练应用C++程序设计语言。 二、课程设计主要内容及要求 本课程设计要求学生分组完成或者独立完成一个完整的用C++语言编写的面向对象的应用程序,以全面掌握C++面向对象程序设计的基本知识。 三、课程设计基本步骤及进度安排 第一次实验课前,任课老师向每个学生分配课程设计题目,讲解课程设计的题目要求和注意事项,并要求学生根据题目要求进行界面的设计和功能代码编写工作,完成课程设计报告。实验进行过程中,指导教师只给予适当的少量指导,让每个学生自己动手完成项目,并要求学生积极启动程序逻辑思维,充分发挥自己的创意,设计出优秀的课程设计作品。四、考核方法: 课程设计结束后,要求学生完成课程设计报告,总结课程设计的问题和经验并由指导老师进行答辩。平时成绩(考勤)20+报告成绩50+答辩成绩30。缺勤超过1/3者,可以给定不及格。

附录 题目1 “高校人员信息管理系统设计” 1、问题描述 某高校有四类员工:教师、实验员、行政人员,教师兼行政人员;共有的信息包括:编号、姓名、性别、年龄等。其中,教师还包含的信息有:所在系部、专业、职称;实验员还包含的信息由:所在实验室、职务;行政人员还包含的信息有:政治面貌、职称等。 2、功能要求 (1)添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。 (2)查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。 (3)显示功能:可显示当前系统中所有记录,每条记录占据一行。 (4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。 (5)删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。 (6)统计功能:能根据多种参数进行人员的统计。能统计四类人员数量以及总数, 统计男、女员工的数量。 (7)保存功能:可将当前系统中各类人员记录存入文件中,存入方式任意。 (8)读取功能:可将保存在文件中的人员信息读入到当前系统中,供用户进行使用。 3、问题的解决方案 根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计; (2)分析系统中的各个实体及它们之间的关系; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述; (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试; (8)完成系统总结报告。 题目2 “公司员工信息管理系统设计” 1、问题描述 某公司需要存储雇员的编号、姓名、性别、所在部门,级别,并进行工资的计算。其中,雇员分为经理、技术人员、销售人员和销售经理。 设计一程序能够对公司人员进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容。 2、功能要求 (1)添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。 (2)查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息; (3)显示功能:可显示当前系统中所有记录,每条记录占据一行。 (4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。

软件设计师分类模拟题面向对象方法学(一)有答案

软件设计师分类模拟题面向对象方法学(一) 单项选择题 1. 已知3个类A、B和C,其中类A由类B的一个实例和类C的一个或多个实例构成。能够正确表示类A、B和C之间关系的UML类图是______。 A. B. C. D.

2. 在uML语言中,图5-3中的a、b、c三种图形符号按照顺序分别表示______。 A.边界对象、实体对象、控制对象 B.实体对象、边界对象、控制对象 C.控制对象、实体对象、边界对象 D.边界对象、控制对象、实体对象 答案:C 当不适合采用生成子类的方法对已有的类进行扩充时,可以采用 3 设计模式动态地给一个对象添加一些额外的职责;当应用程序由于使用大量的对象,造成很大的存储开销时,可以采用 4 设计模式运用共享技术来有效地支持大量细粒度的对象;当想使用一个已经存在的类,但其接口不符合需求时,可以采用 5 设计模式将该类的接口转换成我们希望的接口。3. A.命令(Command) B.适配器(Adapter) C.装饰(Decorator) D.享元(Flyweight)

4. A.命令(Command) B.适配器(Adapter) C.装饰(Decorator) D.享元(Flyweight) 答案:D 5. A.命令(Command) B.适配器(Adapter) C.装饰(Decorator) D.享元(Flyweight) 答案:B 6. 下列关于一个类的静态成员的描述中,不正确的是______。 A.该类的对象共享其静态成员变量的值 B.静态成员变量可被该类的所有方法访问 C.该类的静态方法只能访问该类的静态成员变量 D.该类的静态数据成员变量的值不可修改 答案:D

面向对象设计的三个基本要素

面向对象设计的三个基本要素 面向对象的三个基本特征是:封装、继承、多态。 1·封装性 封装性是一种信息隐蔽技术,他体现于类的说明,是对象重要的特性。封装使得数据和操作数据的方法封装为一个整体,想成独立性很强的模块,使得用户只能看到对象的外部特性(对象可以接受拿些信息,可以进行何种处理),而对象的内部特性(内部私有属性和实现处理能力的算法)用户是看不到的。简而言之就是说,封装使对象的设计者与对象的使用者分开,使用者只要知道对象可以做什么就可以了,无需知道具体是怎么实现的。借助封装有助于提高类和系统的安全性。 2·继承性 继承是一种由已有类创建子类的机制,利用继承,可以先创建一个共有属性的一般类,根据这个类再创建具有特殊属性的子类,被继承的类成为父类,当然子类也可以成为父类来继续向下扩展。 3·多态性 同一个信息被不同的对象接收到时可能产生不同的行为,这就是多态性。有继承(接口)有重写,父类引用指向子类对象,就会产生多态。多态可以改善程序的组织架构,提高程序的可扩展性。 二、面向对象设计的五个基本设计原则 面向对象设计的五个基本设计原则是:单一职责原则(SRP)、开放封闭原则(OCP)、Liskov替换原则(LSP)、依赖倒置原则(DIP)、接口隔离原则(ISP) 1·单一职责原则(Single-Responsibility Principle) 其核心思想为:一个类只做一件事情,只有一个引起他的变化。单一职责原则可以看做是低耦合,高内聚在面向对象原则上的隐身,将职责定义为引起变化的原因,以提高内举行来减少引起变化的原因。职责过多可能引起他变化的原因也就越多,这将导致职责依赖,相互之间产生影响,从而大大损伤内聚性

相关主题
文本预览
相关文档 最新文档