导读:结束了软工文档后,就开始了UML的学习,不管学习什么,都要先从整体上去把握,然后再从细节上去分析理解。在视频的开头,就对UML进行了概述。然后接着讲了面向对象技术,用例图,类图和包图等。看着软工分段总结的效果还不错,所以,本阶段的学习,继续分段总结。本篇文章共分为:一、UML概述;二、面向对象技术(软工);三、面向对象技术(UML);四、面向对象技术(HHX);五、区分基于对象、面向过程;六、个人感受。

一、UML概述

在概述中,学习到了UML是什么,以及它的来源历史。UML作为一种程序设计语言,它的初衷也和软件工程一样,是为了提高软件质量,解决软件危机。而,UML的应用,则又是基于9种UML图和4种关系。从概述中,我们可以很清晰的发现,UML的一个重点,则是它的构造。

二、面向对象技术(软工)

在软工的学习中,面向对象技术也作为一个重点辅助技能进行掌握。它主要从OOA(面向对象的分析)和OOD(面向对象的设计)进行讲解说明。在OOA中,又从分析任务、分析方法(OMT)和分析内容(5层)进行说明。在OOA里,要重点把握各层的标识。其后的OOD,则主要介绍了它的设计原则和方法。

三、面向对象技术(UML)

在UML里,为了弥补有些人没有接触面向对象技术,又对面向对象技术进行了说明。它主要从两个方面进行讲解:理论、应用。在UNL里,主要讲解了面向对象中的概念:对象、类、属性、操作、接口、组件、包、子系统等。以及面向对象的基本原则:抽象、封装、继承、多态。这几个原则在软工里的OOD里面也有体现。

四、面向对象技术(HHX)

对比了UML和软工里面关于面向对象的讲解,再看了看信管和数理中关于这一方面知识的描述,形成了我对面向对象技术的理解。我理解的面向对象技术,主要从三个方面:开发方法、开发原则、技术特点。而面向对象技术的相关概念,在UML和软工中介绍的都很详细。对比可以发现,面向对象的原则也好,特点也好,都离不开三个:封装、继承、多态。

五、区分基于对象、面向过程。

5.1 区分基于对象

我记得老师讲VB的时候,说过:严格意义上讲,VB是基于对象......那时候,不是很理解,因为书里说的是面向对象,不明白怎么就成了老师说的基于对象了。现在,我有点理解了。

首先,面向对象的三大特点(封装,继承,多态)缺一不可。而,从敲的小例子中,学生,机房来看,VB实现了封装,而继承和多态这两个,就没有很完美的体现。

其次,我们所谓的基于对象,很大程度上是使用对象。基于对象,无法实现继承,从而更无法实现多态。而使用对象,则可以看做是实现了封装。

最后,区分面向对象和基于对象的方法是:是否实现了继承和多态,是,则面向对象;否,则基于对象。

5.2 区分面向过程

还记得,当时总结VB的时候,懵懵懂懂的就照着别人说的面向对象和面向过程两个方向去总结,而常常挂在嘴边的也是这两个。可是一直以来,都不是很明确的清楚这两个到底是什么样的东西。

面向过程:就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

面向对象:是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

举一个例子,跳绳游戏。面向过程则是:1,人先去摇绳;2,去跳;3,跳绳失败;4,换人摇绳;5,去跳;6,跳绳失败;7,重复步骤;8,结束游戏。而面向对象则是:1,参加人员;2,跳绳方法;3,游戏规则。当行为触发了游戏规则,则会自动判定输赢。

六、个人感受

现在回头去看VB,按照面向对象和面向过程这两个方法来总结是值得肯定的。当时不明白为什么要那样去做,但就是随大流的那样去做了,直到现在,才开始有了一点自己的想法。当自己有了想法之后,就对之前的知识进行纠正和归类,从而也得到了新的提高。

有时候,不必过于纠结每一个细节的东西,先就把它当做是王八的屁股。等到相关知识积累的多了,就一定会在脑子里形成碰撞,从而形成真正属于自己的东西。

请大家多多指教,谢谢!

【UML】概述以及面向对象技术总结的更多相关文章

  1. 【新秀疯狂UML系列】——面向对象的技术

    从软质工作开始,我们来到与面向对象的接触,接下来的学习材料似乎已经提到了面向对象,在与她的朋友去一个.所以,我们必须知道她多一点点. 一.何为面向对象? 面向对象(Object Oriented).是 ...

  2. 2017.12.23 第二章 统一建模语言UML概述

    第二章 统一建模语言UML概述 (1)为什么要建模 模型是某个事物的抽象,其目的是在构建这个事物之前先来理解它,因为模型忽略了那些非本质的细节,这样有利于更好的理解和表示事物: 在软件系统开发之前首先 ...

  3. UML概述(转载)

    UML是一种标准语言,用于指定,可视化,构造和文档的软件系统. UML是OMG在1997年1月提出了创建由对象管理组织(OMG)和UML1.0规范草案. OMG不断努力,使一个真正的行业标准. UML ...

  4. 为什么ABAP开发者需要使用面向对象技术?

    ABAP对面向对象的支持已有十多年的历史,然而在生产实践中,我们对这门技术的应用十分有限. 一方面,面向过程的惯性长期存在着:另一方面,对于大部分二次开发工作而言,似乎并没有足够的理由促使开发者使用面 ...

  5. Windows环境下多线程编程原理与应用读书笔记(2)————面向对象技术

    面向对象技术是学C++需要重点掌握的知识,因为我觉得自己的基础还是比较可以,这一章节的内容就只是粗略的读了一遍,在此就不做过多的笔记.

  6. Java面向对象技术

    问题及答案来源自<Java程序员面试笔试宝典>第四章 Java基础知识 4.2面向对象技术 1.面向对象与面向过程有什么区别? 看下面一个实例即可: 面向过程就是分析出解决问题所需要的步骤 ...

  7. 敏捷软件开发:原则、模式与实践——第13章 写给C#程序员的UML概述

    第13章 写给C#程序员的UML概述 UML包含3类主要的图示.静态图(static diagram)描述了类.对象.数据结构以及它们之间的关系,藉此表现出了软件元素间那些不变的逻辑结构.动态图(dy ...

  8. 使用面向对象技术创建高级 Web 应用程序

    作者: 出处: 使用面向对象技术创建高级 Web 应用程序 来源:开源中国社区 作者:oschina 最近,我面试了一位具有5年Web应用开发经验的软件开发人员.她有4年半的JavaScript编程经 ...

  9. 面向对象技术-原文转载自jingwhale

    面向对象技术 --原文转载自jingwhale,文章底部附原文链接 对象是面向对象的程序设计的核心,它由描述状态的属性(变量)和用来实现对象行为的方法(函数)组成,完成了从数据模型到处理模型的结合与统 ...

随机推荐

  1. Java基础50题test2—输出素数

    [输出素数] 题目:判断 101-200 之间有多少个素数,并输出所有素数. 程序分析:判断素数的方法:用一个数分别去除 2 到 sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数 pu ...

  2. AJPFX关于Collection接口的总结

    ###15Collection-List-ArrayList/LinkedList/*  * Collection接口中的方法* A:添加功能*                 boolean add ...

  3. 自动完成文本框(AutoCompleteTextView与MultiAutoCompleteTextView)关联适配器

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools=&q ...

  4. PCL点云处理可视化——法向显示错误“no override found for vtk actor”解决方法

    转:https://blog.csdn.net/bflong/article/details/79137692 参照:https://blog.csdn.net/imsaws/article/deta ...

  5. mac重启privoxy命令

    重启命令 brew services restart privoxy

  6. UVA 10003 cuting sticks 切木棍 (区间dp)

    区间dp,切割dp[i][j]的花费和切法无关(无后效性) dp[i][j]表示区间i,j的花费,于是只要枚举切割方法就行了,区间就划分成更小的区间了.O(n^3) 四边形不等式尚待学习 #inclu ...

  7. codeforce Gym 100203I I WIN (网络流)

    把'I'拆成容量为1一条边,一个入点一个出点,入点和相邻的'W'连一条容量为1的边,出点和相邻的'N'连一条容量为1,所有的'W'和源点连一条容量为1边,所有的'N'和汇点连一条容量为1的边,表示只能 ...

  8. leetcode_1095. Find in Mountain Array_[Binary Search]

    https://leetcode.com/problems/find-in-mountain-array/ 题意:给定一个MountainArray(定义见题目),找到其中最早出现的target值的下 ...

  9. 阿里Java架构师面试高频300题:集合+JVM+Redis+并发+算法+框架等

    前言 在过2个月即将进入9月了,然而面对今年的大环境而言,跳槽成功的难度比往年高了很多,很明显的感受就是:对于今年的java开发朋友跳槽面试,无论一面还是二面,都开始考验一个Java程序员的技术功底和 ...

  10. xheditor的参数配置详解

    2.2. 初始化参数列表 2.3. API函数接口列表 2.4. 上传程序开发规范 2.5. 插件开发指南 2.6. 皮肤设计指南 2.2. 初始化参数列表 初始化参数示例代码: $('#elm1') ...