面向对象分析与设计

详细介绍软件架构设计的三个维度

感情迁移 提交于 2019-12-05 04:36:47
架构设计 是一个非常大的话题,不管写几篇文章,接触到的始终只是冰山一角,更多的是实践中去体会。这篇文章主要介绍面向对象OO、面向方面AOP和面向服务SOA这三个要素在架构设计中的位置与作用。 架构设计有三个维度,或者说是我们在考虑架构时需要思考三个方向。 这三个维度分别为面向对象、面向方面、面向服务。 这三个维度可以看作是正交的,但不同维度会互相印证,互相支撑,整个架构的示意图如图所示。 面向对象 面向对象技术最初是从面向对象的程序设计开始的,它的出现以上世纪60年代Simula语言为标志,并在Smalltalk语言的完善和标准化过程中得到更多的扩展和对以前思想的重新注解。 上世纪80年代中后期,面向对象程序设计逐渐成熟,被计算机界理解和接受,人们又开始进一步考虑面向对象的开发问题。直到现在,面向对象已经成为一种非常流行的编程方式,以及软件设计的架构。 面向对象提出有三个主要目标:重用性、灵活性和扩展性,强调对象的“抽象”、“封装”、“继承”和“多态”。它能让人们以更加接近于现实世界的方式来思考程序,这点可以说是面向对象最大的进步。 在OO思想的运用上,业界出现了很多好的经验与技巧,从而涌现出大量的设计模式,可以说面向对象是系统分析与设计时的一个很重要的方面。 面向方面 面向方面最初来源于hook技术,本质上就是满足扩展的需求,可以在程序中自由扩展功能。

面向对象与面向程序的区别与优缺点

▼魔方 西西 提交于 2019-12-05 00:53:49
面向对象以 数据(属性)为导向,将具有相同一个或者多个属性的物体抽象为“类”,将他们包装起来;而有了这些数据(属性)之后,我们再考虑他们的行为(对这些属性进行什么样的操作), 面向过程以 功能(行为)为导向,按模块化的设计,在你在脑袋中也许也有一个类似“类”的概念,但是表现出来的是属性与行为的分离。 面向过程 定义 面向过程是一种以过程为中心的编程思想,它是一种基础的顺序的思维方式,面向对象方法的基础实现中也包含面向过程思想。面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 特性:模块化 流程化 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开 发,性能是最重要的因素。 缺点:没有面向对象易维护、易复用、易扩展 面向对象 定义 面向对象是按人们认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世界分析、设计、实现软件的办法。通过面向对象的理念使计算机软件系统能与现实世界中的系统一一对应。 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 特性:抽象 封装 继承 多态 优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性

业务领域建模Domain Modeling

寵の児 提交于 2019-12-04 21:21:24
一、什么是业务领域建模 领域建模: 从领域模型开始,我们就开始了面向对象的分析和设计过程,可以说,领域模型是完成从需求分析到面向对象设计的一座桥梁。 顾名思义,就是显示最重要的业务概念和它们之间关系,是真实世界各个事物的表示(现实世界的可视化抽象字典)而不是软件中各构件的表示。领域模型是描述业务领域(业务实体)的静态结构。 理论派观点: Domain Model是一个商业建模范畴概念,即使一个企业不开发软件,也具备其业务模型; 所有同行企业,其业务模型必定有非常大的共性和内在的规律性。 由行业内的各个企业的业务模型再向上抽象出整个行业的业务模型,这个模型称之为“领域模型”。 领域模型是一种特殊的业务模型,它分析范围是整个行业,抽象出行业里共性和内在规律性的业务,比业务模型更加抽象,它不属于软件开发范畴的概念,与软件开发无关。 实战派观点: 领域模型是一个分析模型,帮助系统分析人员、用户认识现实业务的工具,描述的是业务中涉及到的实体及其相互之间的关系,它是需求分析的产物,与问题域相关。 是需求分析人员与用户交流的有力工具,是彼此交流的语言。 领域模型是一种分析模型,在软件开发过程分析阶段用于分析如何满足系统功能性需求,属于软件开发范畴,在UML中主要使用类图来描述领域模型。 业务模型是业务建模的输出物,业务建模研究的对象是公司或者组织,业务建模属于软件开发过程中的初始阶段。

Java Part 001( 02_01_理解面向对象 )

时光怂恿深爱的人放手 提交于 2019-12-04 07:53:17
Java完全支持面向对象的三个基本特征: 继承、封装、多态 面向对象的方式实际上由OOA(面向对象分析)、OOD(面向对象设计)、OOP(面向对象编程)三个部分有机组成 目前业界统一采用UML(统一建模语言)来描述并记录OOA和OOD的结果 2.1 面向对象 在目前软件开发领域的两种主流的开发方法: 结构化开发方法、面向对象开发方法 结构化程序设计方法 结构化开发方法: 主张按功能来分析系统需求, 其主要原则可概括为自顶向下, 逐步求精, 模块化等 结构化程序设计的局限性: 1. 设计不够直观, 与人类的思维不一致 2. 适应性差, 可扩展性不强 面向对象程序设计方法 面向对象开发方法: 基本思想是使用类、对象、继承、封装、消息等基本概念来进行程序设计 强调以现实世界中的事物(即对象)来构造软件系统, 根据这些事物的本质特点抽象为系统中的类, 作为系统的基本构成单元 面向对象的基本特征 封装: 将对象的实现细节隐藏起来, 然后通过一些公用的方法来暴露该对象的功能 继承: 实现软件复用的重要手段 多态: 将子类对象赋值给父类变量, 运行时依然可以表现出子类的行为特征( 同一个类型的对象在运行时可能表现出不同的行为特征 ) 除此之外, 抽象也是面向对象的的重要部分, 抽象就是忽略与当前目标无关的方面, 只关注与当前目标有关的方面. 抽象不打算了解全部问题, 而只是考虑部分问题.

Java面向对象

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

区分OOA/OOD/OOP!!!!!

不打扰是莪最后的温柔 提交于 2019-12-03 15:56:19
OOA   Object-Oriented Analysis: 面向对象 分析方法   是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题。OOA与结构化分析有较大的区别。OOA所强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。   OOA(面向对象的分析)模型由5个层次(主题层、对象类层、结构层、属性层和服务层)和5个活动(标识对象类、标识结构、定义主题、定义属性和定义服务)组成。在这种方法中定义了两种对象类之间的结构,一种称为分类结构,一种称为组装结构。分类结构就是所谓的一般与特殊的关系。组装结构则反映了对象之间的整体与部分的关系。   OOA在定义属性的同时,要识别实例连接。实例连接是一个实例与另一个实例的映射关系。   OOA在定义服务的同时要识别消息连接。当一个对象需要向另一对象发送消息时,它们之间就存在消息连接。   OOA 中的5个层次和5个活动继续贯穿在OOD(画向对象的设计)过程中。OOD模型由4个部分组成。它们分别是设计问题域部分、设计人机交互部分、设计任务管理部分和设计数据管理部分。   一、OOA的主要原则。   (1)抽象:从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质性的特征,就叫作抽象。抽象是形成概念的必须手段。   抽象原则有两方面的意义:第一

两大编程思想(面向过程,面向对象)

≯℡__Kan透↙ 提交于 2019-12-03 15:43:42
1. 面向过程编程(POP)  面向过程:分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用就可以了。  例如:把大象装进冰箱(面向过程,就是按照我们分析好的步骤,按照步骤解决问题)   1. 打开冰箱门,   2. 把大象装进去,   3. 关上冰箱门 2. 面向对象编程(OOP)  面向对象:是把事务分解成为一个个对象,然后由对象之间分工与合作。  例如:把大象装进冰箱(面向对象是以对象来划分问题,而不是步骤)  先找出对象,并写出这些对象的功能:  1. 大象 (对象) 进去  2. 冰箱 (对象) 打开 关闭  3.使用大象和冰箱的功能 3. 面向对象特性  在面向对象程序开发思想中,每个对象都是功能中心,具有明确分工。  面向对象编程具有灵活,代码复用,容易维护和开发的优点,更适合多人合作的大型软件项目。  面向对象的特性: 封装性(封装代码) 继承性(继承父类对象) 多态性(同一个对象,在不同的时刻,体现不同的状态) 4. 面向过程 和 面向对象 的对比  面向过程:(简单,步骤明确的项目)   优点:性能比面向对象高,适合跟硬件联系很紧密的东西,例如单片机就采用面向过程编程。   缺点:没有面向对象易维护、易复用、易扩展。  面向对象:(适用大型,多人合作的项目)   优点:易维护、易复用、易扩展,由于面向对象有封装,继承

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

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

Java面向对象(一)

给你一囗甜甜゛ 提交于 2019-12-03 11:04:45
1.面向对象(一) 面向过程与面向对象的区别(蛋炒饭VS盖饭) 为什么会出现面向对象分析方法? 因为现实世界太复杂多变,面向过程的分析方法无法满足。 面向过程 采用面向过程必须了解整个过程,每个步骤都有因果关系,每个因果关系都构成了一个步骤,多个步骤就构成了一个系统,因为存在因果关系每个步骤很难分离,非常紧密,当任何一步骤出现问题,将会影响到所有的系统。如:采用面向过程生产电脑,那么他不会分CPU、主板和硬盘,它会按照电脑的工作流程一次成型。代码间耦合度(代码间的关联)强,牵动任何一个因果关系会影响整个系统的运行。 面向对象 面向对象对会将现实世界分割成不同的单元(对象),实现各个对象,如果完成某个功能,只需要将各个对象协作起来就可以。 【 1 】(了解) 面向对象 vs 面向过程 例子:人开门;把大象装冰箱 理解一:人开门 // 面向过程:人 打开 门 // 面向对象: 人{ 打开(门){ 门.开开(); } } 门{ 开开(){ } } 理解二:人把大象装进冰箱 //面向过程:1)打开冰箱2)把大象放进去 3)关闭冰箱门 //面向对象: 人{ 打开(冰箱){冰箱.开开();} 操作(大象){大象.进入(冰箱)} 关闭(冰箱){冰箱.合上()} } 大象{ 进入(冰箱){} } 冰箱{ 开开(){} 合上(){} } 【 2 】面向对象的编程关注于类的设计! 1)一个项目或工程

《智能住宅小区物业管理系统设计与实现》论文笔记(二)

久未见 提交于 2019-12-03 08:24:52
一、 基本信息 标题:智能住宅小区物业管理系统设计与实现 时间:2011 来源: 电子科技大学 研究方向 ;信息系统开发 关键词:智能住宅,JAVA,UML,MVC 二、 研究内容 统一建模语言UML UML特点: 1.统一的建模语言 2.支持面向对象 3.支持可视化、表示能力强大 4.独立于过程 5.添加了新概念(模板、过程、分布式、合作、活动图等) 6.容易学习使用 UML的内容: 1.UML的系统建模功能: (1)Use Case建模 (2)对象类和对象建模 (3)组件建模 (4)配置建模 2.UML语言的公共机制: (1)规格目录 (2)修饰 (3)通用划分 (4)拓展机制 3.UML的对象约束语言 UNL的图示: UML中包括九种图:用例图、类图、对象图、状态图、时序图、协作图、活动图、组件(构件)图、配置(部署)图。 三、 结论 通过这篇论文的阅读,让我充分了解了UML的特点、内容和UML图,这些是在项目需求分析、项目基本功能模块功能部署等关键步骤中是必不可少的。通过这些UML图示能够充分的将项目的结构及其行为体现出来。这对项目的开发是至关重要的,也是必不可少的。 四、 参考文献 [1] 朱然.智能住宅小区物业管理系统设计与实现 [D].四川:电子科技大学,2011. 来源: https://www.cnblogs.com/xie20167062/p/11784907