面向对象分析与设计

面向对象与面向过程

时间秒杀一切 提交于 2019-12-02 23:33:58
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 面向对象(Object Oriented,OO)是当前计算机界关心的重点,它是90年代软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象,这方面的文章非常多。但是,明确地给出对象的定义或说明对象的定义的非常少,至少现在还没有发现。起初,“面向对象”是专指在程序设计中采用封装、继承、抽象等设计。 面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。“面向过程”也可称之为“面向记录”编程思想,他们不支持丰富的“面向对象”特性(比如继承、多态),并且它们不允许混合持久化状态和域逻辑。 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。 代码示例 class Employee: '所有员工的基类' empCount = 0 def __init__(self, name, salary): self.name = name

Java基础系列1:Java面向对象

会有一股神秘感。 提交于 2019-12-02 22:56:39
该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架。 概述: Java是面向对象的程序设计语言,Java语言提供了定义类、成员变量、方法等最基本的功能。类可被认为是一种自定义的数据类型,可以使用类来定义变量,所有使用类定义的变量都是引用变量,它们将会引用到类的对象。类用于描述客观世界里某一类对象的共同特征,而对象则是类的具体存在,Java程序使用类的构造器来创建该类的对象。 对象和类: Java是面向对象的程序设计语言,类是面向对象的重要内容,可以把类当成一种自定义类型,可以使用类来定义变量,这种类型的变量统称为引用变量。也就是说,所有类是引用类型。对象是由类创建出来的,可以说类时对象的抽象,对象是类的实例。 对象的概念: Java 是面向对象的编程语言,对象就是面向对象程序设计的核心。所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。对象有以下特点: 对象具有属性和行为。 对象具有变化的状态。 对象具有唯一性。 对象都是某个类别的实例。 一切皆为对象,真实世界中的所有事物都可以视为对象。 面向对象与面向过程: 1、面向过程: 面向过程是一种以事件为中心的编程思想

面向对象方法与UML的历史与发展

冷暖自知 提交于 2019-12-02 17:21:01
一、 不同的分析与设计方法 1.功能分解法( function decomposition ) 以系统需要提供的功能为中心来组织系统。 首先定义各种功能,然后把功能分解为子功能,对较大的子功能进一步分解,直到可给出明确的定义 设计功能 / 子功能所需要的数据结构 定义功能 / 子功能之间的接口。 (作为一种早期的建模方法,没有明确地区分分析与设计) 建模过程:层层进行功能分解 功能分解法得到的系统模型(由模块及其接口构成) 优点与缺点: 直接地反映用户的需求,所以工作很容易开始; 不能直接地映射问题域,很难检验结果的正确性; 对需求变化的适应能力很差; 局部的错误和修改很容易产生全局性的影响。 2.结构化方法: 结构化分析( structured analysis , SA ) 结构化设计( structured design 。 SD ) 结构化分析又称数据流法,其基本策略是跟踪数据流,即研究问题域中数据如何流动,以及在各个环节上进行何种处理,从而发现数据流和加工。得到的分析模型是数据流图( DFD ),主要模型元素是数据流、加工、文件及端点,外加处理说明和数据字典。 数据流图 结构化设计与功能分解法基本相同,基于模块的概念建立设计模型,分为概要设计和详细设计。 概要设计:确定系统中包含哪些模块以及模块之间的调用关系,得到模块结构图( MSD )。 详细设计

面向对象设计模式原则01 单一职责原则(SRP)

廉价感情. 提交于 2019-12-02 14:33:31
单一职责原则(Single Responsibility Principle,SRP)又称单一功能原则,这里的职责是指类 变化的原因。 单一职责原则规定一个类应该有且仅有一个引起它 变化的原因 ,否则类应该被拆分。 以上是单一职责的基本概念,可以看到两句话中两次提到了"变化的原因"。 变化是软件生命周期中持续存在的过程,也可以说变化促进了软件的发展,如果软件不再发生变化,那么这个软件就停止了发展。 从这个角度来说,变化是积极有益的。 但是变化也消极有害的一面,这主要体现在变化的过程中对软件中一些已有的、无需变化的部分造成干扰,从而对软件产生结构性损害,造成软件无法正常工作。 如果软件的所有部分都发生了变化,那使用设计模式是难以支撑的,这时需要考虑的不是“重构”,而是“重写”。 如果软件的所有部分都不发生变化,那使用设计模式是没有意义的,这时需要考虑的是“效率”,而不是“扩展”。 麻烦的是软件的某些部分变化而某些部分没有变化,面向对象设计模式就是为了解决此项问题而提出的。 回到本文所讲的主题——单一职责原则,这项原则强调的是“业务逻辑隔离”。 按照面向对象的思想,把每种业务逻辑当作一个“人”的话,那么这些“人”就是有传染病的“病人”。而我们的软件就是一所“传染病医院”。单一职责,就相当于对不同的传染病类型的病人,隔离治疗——划分在不同的病区和病房。而防止病人之间的相互传染。

IT黑马-面向对象

南楼画角 提交于 2019-12-02 13:03:01
先说面向过程 面向过程主要考虑的是怎么做 把完成摸个需求的 所有步骤 从头到尾 逐步实现 根据开发需求,将某些功能独立的代码封装成一个又一个的函数 最后完成的代码就是顺序的调用不同的函数. 特点是: 注重不准走与过程,不注重职责分工. 如果需求复杂,代码会变的很复杂 开发复杂项目,没有固定套路,开发难度很大. 面向对象 侧重点是谁来做? 相比较函数,面向对象是更大的封装,根据职责在一个对象中封装多个方法. 在完成某偶一个需求前首先确定职责--要做的事情(方法) 根据职责确定不同的对象,在对象内部封装不同的方法(多个) 最后完成的代码就是顺序的让不同对象调用不同的方法. 特点是: 注重对象和职责,不同的对象承担不同的职责 更加适合对应复杂的需求变化,最专门应对复杂项目开发,提供固定套路 需要面向过程的基础上,再学习一些面向对象的语法. 例子: 类和对象是面向对象编程的两个核心概念 类是对一群具有相同特征或者行为的实物的一个统称,是抽象的,不能直接使用 特征被称为 属性 行为被称为 方法 对象 是由类创建出来的一个具体存在,可以直接使用 由哪一个类创建出来的对象 就拥有在哪一个类中定义的 属性和方法 类相当于图纸,对象就是用图纸创造出来的东西 在程序开发中先有类,再有对象. 类和对象的关系: 类是模板,对象是根据类这个模板创建出来的. 类只有一个,而对象可以有很多个.

关于面向对象的伦理知识

纵饮孤独 提交于 2019-12-02 12:51:34
**```java /*面向对象的三大特征 *封装 *多态 *续承 所有面向对象的编程语言都有这三大特征。 采用面向对象的方式开发一个软件,生命周期当中:【整个生命周期中贯穿使用oo面向对象方式】 *面向对象的分析 ooa *面向对象的设计 ood *面向对象的编程 oop *类和对象的概念 *什么是类? -类在现实生活中是不存在的,是一个模板,是一个概念,是人类大脑是是思考抽象的结果。 -类代表了一类事物。 -在现实生活中,对象A与对象B之间具有共同特征,进行抽象总结出来一个模板,这个模板 被称之为类。 *什么是对象? -对象是实际存在的个体。现实生活世界当中实际存在的。 * 例如:描述一下整个软件开发过程: *程序员先观察现实世界,从现实世界当中寻找对象 *寻找了N多个对象之后,发现所有的对象都有共同特征 *程序员在大脑中形成一个模板(类) *java程序员可以通过java代码来表述一个类 *java程序员中有了类的定义 *然后通过类就可以创建对象 *有对象之后,可以让对象直接协作起来形成一个系统。 * 类----》【实例化】----》类 *对象又被称为实例化 / instance *对象---【抽象】-----》类 *重点: 类描述的是对象的共同特征 共同特征列如:身高特征 这个身高特征在访问的时候,必须先创建对象,通过对象去访问这个特征。 因为这个特征具体的某个对象上之后

OOA、OOD和OOP的定义及之间的关系

浪子不回头ぞ 提交于 2019-12-02 08:17:42
什么是面向对象分析(OOA)? "面向对象分析是一种分析方法,这种方法利用从问题域的词汇表中找到的类和对象来分析需求。" 什么是面向对象设计(OOD)? “面向对象设计是一种设计方法,包括面向对象分解的过程和一种表示法,这种表示法用于展现被设计系统的逻辑模型和物理模型、静态模型和动态模型”。 这里定义2个要点: (1)面向对象设计导致了面向对象分解 (2)面向对象设计使用了不同的表示法来表达逻辑设计(类和对象结构)和物理设计(模块和处理架构)的不同模型,以及系统的静态和动态特征。 什么是面向对象编程(OOP)? ”面向对象编程是一种实现的方法,在这种方法中,程序被组织成许多组互相协作的对象,每个对象代表某个类的一个实例,而类则属于一个通过继承关系形成的层次结构“ 这里定义有三个要点: (1)利用对象作为面向对象编程的基本逻辑构建块,而不是利用算法 (2)每个对象都是某个类的一个实例 (3)类与类之间可以通过继承关系联系在一起。 它们之间的关系基本上,面向对象分析的结果可以作为开始面向对象设计的模型,面向对象的设计结果可以作为蓝图,利用面向对象编程方法最终实现一个系统。 来源: oschina 链接: https://my.oschina.net/u/576883/blog/103800

JS面向对象编程

夙愿已清 提交于 2019-12-02 03:02:07
JavaScript 面向对象编程 面向对象介绍 什么是对象 Everything is object (万物皆对象) 对象到底是什么,我们可以从两次层次来理解。 (1) 对象是单个事物的抽象。 一本书、一辆汽车、一个人都可以是对象,一个数据库、一张网页、一个与远程服务器的连接也可以是对象。当实物被抽象成对象,实物之间的关系就变成了对象之间的关系,从而就可以模拟现实情况,针对对象进行编程。 (2) 对象是一个容器,封装了属性(property)和方法(method)。 属性是对象的状态,方法是对象的行为(完成某种任务)。比如,我们可以把动物抽象为animal对象,使用“属性”记录具体是那一种动物,使用“方法”表示动物的某种行为(奔跑、捕猎、休息等等)。 在实际开发中,对象是一个抽象的概念,可以将其简单理解为: 数据集或功能集 。 ECMAScript-262 把对象定义为: 无序属性的集合,其属性可以包含基本值、对象或者函数 。 严格来讲,这就相当于说对象是一组没有特定顺序的值。对象的每个属性或方法都有一个名字,而每个名字都映射到一个值。 提示:每个对象都是基于一个引用类型创建的,这些类型可以是系统内置的原生类型,也可以是开发人员自定义的类型。 什么是面向对象 面向对象不是新的东西,它只是过程式代码的一种高度封装,目的在于提高代码的开发效率和可维 护性。 面向对象编程 ——

js面向对象

廉价感情. 提交于 2019-12-01 18:28:58
一. JavaScript面向对象前言 1.1 什么是对象? Everything is object (万物皆对象)。 对象到底是什么,我们可以从两个层次来理解。 对象的组成 方法(有归属)----函数(自由的) 属性(有归属)----变量(自由的) 1.对象是单个事物的抽象 一本书、一辆汽车、一个人都可以是对象,一个数据库、一张网页、一个与远程服务器的连接也可以是对象。当实物被抽象成对象,实物之间的关系就变成了对象之间的关系,从而就可以模拟现实情况,针对对象进行编程。 2.对象是一个容器,封装了属性(property)和方法(method) 属性是对象的状态,方法是对象的行为(完成某种任务)。比如,我们可以把动物抽象为animal对象,使用“属性”记录具体是那一种动物,使用“方法”表示动物的某种行为(奔跑、捕猎、休息等等) 在实际开发中,对象是一个抽象的概念,可以将其简单理解为 : 数据集或功能集。 1.2 什么是面向对象? 面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式。它使用先前建立的范例,包括模块化,多态和封装几种技术。今天,许多流行的编程语言(如Java,JavaScript,C#,C+ +,Python,PHP,Ruby和Objective-C)都支持面向对象编程(OOP)。 相对于「一个程序只是一些函数的集合,或简单的计算机指令列表。

面向对象程序设计与面向过程程序设计的特点

谁说胖子不能爱 提交于 2019-12-01 10:57:54
一、面向过程程序设计 1)传统的结构化程序设计通过设计一系列的过程(即算法)来解决问题。当确定过程之后,再开始考虑存储数据的方式。算法是第一位的,数据结构是第二位的。 2)首先确定如何操作数据,然后再决定如何组织数据,以便于数据操作。 3)面向过程是一种以事件为中心的编程思想,以功能(行为)为导向,按模块化的设计,就是分析出解决这个问题所需要的步骤,然后用函数把这些步骤一步一步实现,实现时依次的调用相应的函数即可。 4)面向过程编程是一种以过程为中心的编程思想,分析出解决问题的步骤,然后用函数把这些步骤一步一步实现。面向过程编程,数据和对数据的操作是分离的。 5)面向过程程序设计方法以功能为中心来设计功能模块,难于维护 二、面向对象程序设计(oop) 1)oop将数据放在第一位,然后再考虑操作数据的算法。 2)面向对象的技术,是一种以对象为基础,以事件或消息来驱动对象运行处理的程序设计技术。它具有封装性,继承性以及多态性。 <1> 封装:把客观事物封装成抽象的类,隐藏属性和方法的实现细节,仅对外公开接口。 <2> 继承:子类可以使用父类的所有功能,并且对这些功能进行扩展。继承的过程,就是从一般到特殊的过程。 <3> 多态:接口的多种不同的实现方式即为多态。同一操作作用于不同的对象,产生不同的执行结果。在运行时,通过指向基类 的指针或引用来调用派生类中的虚函数来实现多态。