zoukankan
html css js c++ java
软考知识点梳理--面向对象方法
面向对象(Object-Oriented,OO)方法认为,客观世界是由各种对象组成的,任何事物都是对象,每一个对象都有自己的运动规律和内部状态, 都属于某个对象类,是该对象类的一个元素。复杂的对象可由相对简单的各种对象以某种方式而构成,不同对象的组合及相互作用就构成了系统。
OO方法 是当前的主流开发方法,拥有很多不同的分支体系,主要包括OMT(Object Model Technology,对象建模技术)方法、Coad/Yourdon方法、OOSE(Object-Oriented Software Engineering,面向对象的软件工程)方法和Booch方法等,而OMT、OOSE和Booch已经统一成为UML(United Model Language,统一建模语言)。
使用OO方法构造的系统具有更好的复用性,其关键在于建立 一个全面、合理、统一的模型(用例模型与分析模型)。与结构化方法类似,OO方法也划分阶段,但其中的系统分析、系统设计和系统实现三个阶段之间已经没有 “缝隙”。也就是说,这三个阶段的界限变得不明确,某项工作既可以在前一个阶段完成,也可以在后一个阶段完成;前一个阶段工作做得不够细,在后一个阶段可 以补充。
OO方法使系统的描述及信息模型的表示与客观实体相对应,符合人们的思维习惯,有利于系统开发过程中用户与开发人员的交流和沟通,缩短开 发周期。OO方法可以普遍适用于各类信息系统的开发,但是,OO方法也存在明显的不足。例如,必须依靠一定的OO技术支持,在大型项目的开发上具有一定的 局限性,不能涉足系统分析以前的开发环节。 当前,一些大型信息系统的开发,通常是将结构化方法和OO方法结合起来。首先,使用结构化方法进行自顶向下的整体划分;然后,自底向上地采用OO方法进行开发。因此,结构化方法和OO方法仍是两种在系统开发领域中相互依存的、不可替代的方法。
OOA 的基本任务是运用OO方法,对问题域进行分析和理解,正确认识其中的事物及它们之间的关系,找出描述问题域和系统功能所需的类和对象,定义它们的属性和职责,以及它们之间所形成的各种联系。最终产生一个符合用户需求,并能直接反映问题域和系统功能的OOA模型及其详细说明。
OOA模型包括用例模型和分析模 型,用例是一种描述系统需求的方法,使用用例的方法来描述系统需求的过程就是用例建模;分析模型描述系统的基本逻辑结构,展示对象和类如何组成系统(静态 模型),以及它们如何保持通信,实现系统行为(动态模型)。
OOD是OOA方法的延续,其基本思想包括抽象、封装和可扩展性,其中可扩展性主要通 过继承和多态来实现。在OOD中,数据结构和在数据结构上定义的操作算法封装在一个对象之中。由于现实世界中的事物都可以抽象出对象的集合,所以OOD方 法是一种更接近现实世界、更自然的软件设计方法。 OOD的主要任务是对类和对象进行设计,包括类的属性、方法,以及类与类之间的关系。OOD的结 果就是设计模型。对于OOD而言,在支持可维护性的同时,提高软件的可复用性是一个至关重要的问题,如何同时提高软件的可维护性和可复用性,是OOD需要 解决的核心问题之一。
在OOD中,可维护性的复用是以设计原则为基础的。常用的OOD原则如下:
(1)单一职责原则:设计功能单一的类。本原则与结构化方法的高内聚原则是一致的。
(2)开放-封闭原则:对扩展开放,对修改封闭。
(3)李氏(Liskov)替换原则:子类可以替换父类。
(4)依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程。
(5)接口隔离原则:使用多个专门的接口比使用单一的总接口要好。
(6)组合重用原则:要尽量使用组合,而不是继承关系达到重用目的。
(7)迪米特(Demeter)原则(最少知识法则):一个对象应当对其他对象有尽可能少的了解。本原则与结构化方法的低耦合原则是一致的。
面向对象的三个基本特征是:封装、继承、多态。
封装,是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
继承,可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。通过继承创建的新类称为“子类”或“派生类”。被继承的类称为“基 类”、“父类”或“超类”。继承概念的实现方式有三类:实现继承、接口继承和可视继承。实现继承是指使用基类的属性和方法而无需额外编码的能力;接口继承 是指仅使用属性和方法的名称、但是子类必须提供实现的能力;可视继承是指子窗体(类)使用基窗体(类)的外观和实现代码的能力。
多态,是允许将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。实现多态有二种方式:覆盖,重载。
面向对象系统分析和设计 面 向对象的系统分析和设计是将面向对象的方法运用到软件工程的分析设计阶段。面向对象的系统分析和设计的主要目的是完成对某个特定应用论域 (application domain)的分析和系统的建模。应完成的主要工作是描述系统中的对象、对象的属性和操作、对象的动态特性、对象间的构造关系和通信关系等,从而建立系 统的静态结构和动态活动模型。
系统分析和设计应遵循的原则是:
1) 系统开发是面向客户的,应从客户的角度考虑。
2) 诸如系统开发生命周期之类的产品更新换代机构应该在所有的信息系统开发项目中建立起来。
3) 信息系统开发的过程并不是一个顺序的过程,它允许步骤的重叠和倒转等。
4) 如果系统的成功可能性受到很大限制时,应取消整个项目。
5) 文档材料是系统开发生命周期中重要的可递交成果,应加以重视。
查看全文
相关阅读:
小白学 Python(11):基础数据结构(元组)
小白学 Python(10):基础数据结构(列表)(下)
小白学 Python(9):基础数据结构(列表)(上)
小白学 Python(8):基础流程控制(下)
小白学 Python(7):基础流程控制(上)
小白学 Python(6):基础运算符(下)
小白学 Python(5):基础运算符(上)
小白学 Python(4):变量基础操作
小白学 Python(3):基础数据类型(下)
小白学 Python(2):基础数据类型(上)
原文地址:https://www.cnblogs.com/jianlian/p/9537125.html
最新文章
java开发过程中从前台传到后台中文乱码《filter》
quartz使用(一)
eclipse中的web项目路径和发布好的项目路径
搭建spring的开发环境
Unity 游戏框架搭建 2017 (二十) 安全的对象池
Unity 游戏框架搭建 2017 (十九) 简易对象池
Unity 游戏框架搭建 2017 (十八) 静态扩展 + 泛型实现transform的链式编程
Unity 游戏框架搭建 2017 (十七) 静态扩展 GameObject 实现链式编程
Unity 游戏框架搭建 2017 (十六) v0.0.3 架构调整
Unity 游戏框架搭建 2017 (十五) 优雅的 QChain (零)
热门文章
Unity 游戏框架搭建 2017 (十四) 优雅的 QSingleton (五) 优雅地进行GameObject命名
Unity 游戏框架搭建 2017 (十四) 优雅的 QSingleton (四) 属性器实现 Mono 单例
Unity 游戏框架搭建 2017 (十四) 优雅的 QSignleton (三) 通过属性器实现 Singleton
Unity 游戏框架搭建 2017 (十四) 优雅的 QSingleton (二) MonoSingleton单例实现
小白学 Python(16):基础数据类型(函数)(上)
小白学 Python(15):基础数据结构(集合)(下)
小白学 Python(14):基础数据结构(集合)(上)
小白学 Python(13):基础数据结构(字典)(下)
小白 Python 爬虫部署 Linux
小白学 Python(12):基础数据结构(字典)(上)
Copyright © 2011-2022 走看看