<九>面向对象分析之UML核心元素之设计类,类,属性,方法,可见性
设计类
--->设计类是系统实施中一个或多个对象的抽象。
--->设计类已经直接映射到实现代码了,因此设计类依赖于实施语言。另一方面,设计类来源于前期的系统分析,在统一过程中,类不是品空想像出来的。他们可以一一映射到前期系统分析的成果上。从这个观点出发,分析类的重要性就能够体现出来。分析类为设计类中多需要的界面,逻辑和数据提供了非常好的抽象基础,设计类可以非常容易和自然地从分析类中演化出来。
类
--->类对对象进行定义,而对象又实现(或成为实施)用例。类的来源可以是用例实现对系统所需对象的需求,这是为实现业务需求而定义的。也可以是任何以前已开发的对象模型,即现有的系统模块,采用的软件框架,第三方产品等。类说明了对象是什么,同时也决定了对象拥有什么属性,具有什么方法。在java和C++这些典型的面向对象语言里,类就对应于一个class声明。
--->类是对对象某一方面特征的归纳和抽象,而对象则是类实例化的结果。
属性
---->属性是对象的特征。
---->属性同时表明对象的唯一性。
方法
---->原则上,访问对象或影响其他对象的属性或关系的唯一途径是方法,直接访问和修改对象属性是不提倡的。
---->对象的方法由它的类进行定义。大多数情况下,类定义的方法都是由实例化后的对象执行的,即这些方法为对象方法。但有时候也可以由类来执行,这种方法称之为类方法。例如,在java中,类方法是由static关键字声明的。一个static方法可以由类来执行而不必实例化成对象。
---->方法的作用是访问和改变对象的属性,有时候方法仅仅封装了算法,执行该方法不会改变对象的属性,在面向对象中,需要注意的原则是一个对象的属性只应该由它自己的方法来改变。
可见性
---->类的属性和方法都有相似的可见性定义,各编程语言对可见性的处理是不完全一致的。在UML中,可见性可以归纳为以下四类
---->共有:除了类本身意外,属性和方法对其他模型元素也是可看见的。共有的可见性应该尽量少用,共有就意味着将类的属性和方法暴露给外部,这与面向对象的封装原则是矛盾的。暴露给外部的内容越多,对象越容易受影响,越容易形成高耦合度。
--->保护:属性和方法只对类本身,它的子类或友元(取决于具体语言)是可看见的。保护可见性是默认的可见性。它保护属性和方法使其不被外部类使用,防止行为的耦合和封装变得松散。
---->私有:属性和方法只对类本身和类的友元(取决于具体语言)是可视的。私有的可见性可以用在不希望子类继承属性和方法的情况下。它提供了从超类对子类的去耦方法。并减少了删除或排除未使用继承操作的需要
---->实施:属性和方法只在类本身的内部是可看见的(取决于具体的语言)。实施可见性最具限制性。当只有类本身才可以使用操作时,使用这种可见性。它是私有可见性的变体。
<九>面向对象分析之UML核心元素之设计类,类,属性,方法,可见性的更多相关文章
- <四>面向对象分析之UML核心元素之用例
一:基本概念 --->用例定义了一组用例实例,其中每个实例都是系统所执行一系列操作,这些操作生成特定主角可以观测的值. --->所谓用例,就是一件事情,要完成这 ...
- <十>面向对象分析之UML核心元素之关系
关系 --->在UML中关系是非常重要的语义,它抽象出对象之间的联系,让对象构成特定的结构. 一,关联关系(association)
- <五>面向对象分析之UML核心元素之边界
一:基本概念
- <八>面向对象分析之UML核心元素之分析类
一:基本概念 ---->在那大数项目中,分析类是被忽视的一种非常有用的元素. ---->分析类用于获取系统中主要的“职责簇”,他们代表系统的原型类,是系统必须处 ...
- <三>面向对象分析之UML核心元素之参与者
一:版型 --->在UML里有一个概念叫版型.有些书里也称类型,构造型. --->这个概念是对一个UML元素基础定义的扩展.在同一个元素基础定义的基础上赋予特别 ...
- <十二>面向对象分析之UML核心元素之节点和设备
节点,设备
- <七>面向对象分析之UML核心元素之包
一:基本概念
- <六>面向对象分析之UML核心元素之业务实体
一:基本概念
- <十一>面向对象分析之UML核心元素之组件
组件
随机推荐
- window dos 设置网络
->netsh ->pushd interface ip ->set address "本地连接" static 192.168.1.2 255.255.255. ...
- hadoop浅尝 hadoop与hbase交互
在安装好hbase之后,运行一个与hadoop无关的纯hbase程序成功了. 接着写一个hadoop与hbase进行交互的小程序,这个程序的运行方法依然与前文相同, 即导出jar文件在shell下运行 ...
- sql 判断两个时间段是否有交集
本文转自CSDN 链接地址:http://blog.csdn.net/dasihg/article/details/8450195 时间段:starttime_1到endtime_1,starttim ...
- C# 面向对象之概念理解(2)
委托 如果对象A为了满足某个请求,而寻求另一个对象B的帮助,这被称作是A对B的委托. 对象间的委托,和现实世界中人与人之间的委托一样:如果你“那位”要求你在他外出公干期间帮忙助剪草坪,而你转而雇佣邻居 ...
- Winform基础 -- 菜单
快速创建默认菜单 使用控件 MenuStrip : 点击菜单的右上方小三角:选择 [插入标准项] 即可显现出标准的菜单格式: 如果想添加更多的菜单项,可以在 [请在此处键入] 处输入菜单项的名称 ...
- lintcode:最大子数组II
题目 最大子数组 II 给定一个整数数组,找出两个不重叠子数组使得它们的和最大. 每个子数组的数字在数组中的位置应该是连续的. 返回最大的和. 样例 给出数组[1, 3, -1, 2, -1, 2], ...
- Java的登陆验证问题
java中的登陆验证问题可以有多种方式进行验证,通过拦截器功能完成,可以通过过滤器功能完成,也可以简单的代码在JSP页面中单独完成,其中都 涉及到一个关键的验证步骤,这个验证原理ASP,PHP,JAV ...
- Xamarin.Android 入门之:Android的生命周期
一.前言 活动是Android应用程序的基本构建块,他们可以在许多不同的状态存在.当你把一个Android程序置于后台,过一段时间再打开发现之前的数据还存在. 二.活动状态 下面的图表说明了一个活动可 ...
- iOS xcuserdata
说明: project.xcworkspace说明:is a directory of files describing the workspace or projects. Althou ...
- C++:运算符重载函数之友元运算符重载
5.2.2 友元运算符重载函数 运算符重载函数一般采用两种形式定义: 一是定义为它将要操作的类的成员函数(简称运算符重载函数): 二是定义为类的友元函数(简称为友元运算符重载函数). 1.定义友元运算 ...