面向对象设计基础学习教案.ppt
上传人:王子****青蛙 上传时间:2024-09-13 格式:PPT 页数:28 大小:1.1MB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

面向对象设计基础学习教案.ppt

面向对象设计基础学习教案.ppt

预览

免费试读已结束,剩余 18 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

现实世界的依赖以对象为单位,程序世界的依赖以类为单位。现实世界中对象间的依赖是以对象为单位的,这种依赖关系(guānxì)不会随着泛化过程而被泛化到类里面去。程序世界中对象间的依赖是以类为单位的,这种依赖关系(guānxì)会随着泛化过程而被泛化到类里面去。并且,只要两个类建立了依赖,那么两个类之间的所有对象都两两依赖了。程序世界里的对象没有选择权。程序世界里的对象不认识对象。所谓低耦合,就是先剥夺对象的选择权,再剥夺对象的感觉。对象间谁也不认识谁,只知道对象能提供什么服务。现实世界中对象间的依赖是以对象为单位的,这种依赖关系不会随着泛化过程而被泛化到类里面去。程序世界中对象间的依赖是以类为单位的,这种依赖关系会随着泛化过程而被泛化到类里面去。并且,只要两个类建立(jiànlì)了依赖,那么两个类之间的所有对象都两两依赖了。程序世界中,最重要(zhòngyào)的思维是抽象。所谓抽象,是对许多对象撇开个性,抽出共性,这样,抽象过程就不是确定的、唯一的。先有对象,然后才有类,类和对象是“一般和特殊”从认识论来说,首先有具体认知能力,才能有抽象认知能力,抽象认知能力是一种高层的,人类特有的认知能力,它使我们可以从大量具体认知中,舍弃个别的、非本质的属性,提取出共同的、本质的属性,是形成概念的必要手段有相似的数据(但具体值可能不同),有相同的逻辑,不论是过程论还是对象论,都承认(chéngrèn)一点,那就是程序世界本质上只有两种东西——数据和逻辑。数据天性喜静,构成了程序世界的本体和状态;逻辑天性好动,作用于数据,推动程序世界的演进和发展。过程论认为:数据和逻辑是分离的、独立的,各自(gèzì)形成程序世界的一个方面。所谓世界的演变,是在逻辑作用下,数据做改变的一个过程。这种过程有明确的开始、结束、输入、输出,每个步骤有着严格的因果关系。过程是相对稳定的、明确的和预定义的,小过程组合成大过程,大过程还可以组合成更大的过程。所以,程序世界本质是过程,数据作为过程处理对象,逻辑作为过程的形式定义,世界就是各个过程不断进行的总体。对象论认为:数据和逻辑不是分离的,而是相互依存的。相关的数据和逻辑形成个体,这些个体叫做(jiàozuò)对象(Object),世界就是由一个个对象组成的。对象具有相对独立性,对外提供一定的服务。所谓世界的演进,是在某个“初始作用力”作用下,对象间通过相互调用而完成的交互;在没有初始作用力下,对象保持静止。这些交互并不是完全预定义的,不一定有严格的因果关系,对象间交互是“偶然的”,对象间联系是“暂时的”。世界就是由各色对象组成,然后在初始作用力下,对象间的交互完成了世界的演进。对象论认为:世界的演进,是而且只是各种对象通过互相调用其他对象的公开服务而完成交互。程序世界里,相互交互的是对象,而不是类!类之间是永远不可能交互的。类设计存在于设计时,而在运行时存在的都是对象。类只是抽象思维作用于对象的产物,它帮助我们理解(lǐjiě)、记忆、分析和设计。类是抽象的概念,它“客观”存在,但不是“具体”的存在。其世界观是:程序是由若干对象组成,通过对象的相互作用来体现程序的方方面面。其方法论是:用对象状态(字段)来存储数据,对象方法表示对数据的操作。将对象作为问题空间的基本元素,利用对象和对象间的相互作用来设计程序所谓对象,是实际问题中实体的抽象,具有一定的属性和功能。其核心特征是:封装性、继承性和多态性。封装体现的是数据抽象,继承体现的是层级(cénɡjí)抽象,多态是多态抽象。对象范式以数据抽象为主,把要解决的问题映射到类型(对象的蓝图)定义,对象是程序的砖块。单一职责原则SRP,SingleResponsibilityPrinciple就一个类而言,应该仅有一个引起它变化的原因如果你能想到多于一个动机去改变一个类,那么这个类就具有多于一个的职责;对于这样的类,应该将不同职责拆分到不同的类中去实现。设计思路(sīlù)需要哪些信息就可以描述我们要定义的对象?这个对象可以做些什么?或者说可以提供哪些服务?对象是基本,我们从对象上抽象出类。世界可并不是一层对象一层类那么简单,对象抽象出类,在类的基础(jīchǔ)上可以再进行抽象,抽象出更高层次的类。所以经过抽象的对象论世界,形成了一个树状结构。抽象是有层次的11泛化耦合(GeneralizationCouple):由于泛化(继承)关系的存在,在两个有祖孙、父子关系的类间形成的一种逻辑关联。包含耦合:对象本身固有的包含关系,在进行事物抽象时被同时抽象到了类中。聚合(Aggregation):一种弱的拥有关系,体现A对象可以包含B对象,但B对象不是A对象的一部分。组合(Composition):一种强的