设计类

--->设计类是系统实施中一个或多个对象的抽象。
        --->设计类已经直接映射到实现代码了,因此设计类依赖于实施语言。另一方面,设计类来源于前期的系统分析,在统一过程中,类不是品空想像出来的。他们可以一一映射到前期系统分析的成果上。从这个观点出发,分析类的重要性就能够体现出来。分析类为设计类中多需要的界面,逻辑和数据提供了非常好的抽象基础,设计类可以非常容易和自然地从分析类中演化出来。


        --->类对对象进行定义,而对象又实现(或成为实施)用例。类的来源可以是用例实现对系统所需对象的需求,这是为实现业务需求而定义的。也可以是任何以前已开发的对象模型,即现有的系统模块,采用的软件框架,第三方产品等。类说明了对象是什么,同时也决定了对象拥有什么属性,具有什么方法。在java和C++这些典型的面向对象语言里,类就对应于一个class声明。
        --->类是对对象某一方面特征的归纳和抽象,而对象则是类实例化的结果。

属性
        ---->属性是对象的特征。
        ---->属性同时表明对象的唯一性。

方法
        ---->原则上,访问对象或影响其他对象的属性或关系的唯一途径是方法,直接访问和修改对象属性是不提倡的。
        ---->对象的方法由它的类进行定义。大多数情况下,类定义的方法都是由实例化后的对象执行的,即这些方法为对象方法。但有时候也可以由类来执行,这种方法称之为类方法。例如,在java中,类方法是由static关键字声明的。一个static方法可以由类来执行而不必实例化成对象。
        ---->方法的作用是访问和改变对象的属性,有时候方法仅仅封装了算法,执行该方法不会改变对象的属性,在面向对象中,需要注意的原则是一个对象的属性只应该由它自己的方法来改变。

可见性
        ---->类的属性和方法都有相似的可见性定义,各编程语言对可见性的处理是不完全一致的。在UML中,可见性可以归纳为以下四类
        ---->共有:除了类本身意外,属性和方法对其他模型元素也是可看见的。共有的可见性应该尽量少用,共有就意味着将类的属性和方法暴露给外部,这与面向对象的封装原则是矛盾的。暴露给外部的内容越多,对象越容易受影响,越容易形成高耦合度。
        --->保护:属性和方法只对类本身,它的子类或友元(取决于具体语言)是可看见的。保护可见性是默认的可见性。它保护属性和方法使其不被外部类使用,防止行为的耦合和封装变得松散。
        ---->私有:属性和方法只对类本身和类的友元(取决于具体语言)是可视的。私有的可见性可以用在不希望子类继承属性和方法的情况下。它提供了从超类对子类的去耦方法。并减少了删除或排除未使用继承操作的需要
        ---->实施:属性和方法只在类本身的内部是可看见的(取决于具体的语言)。实施可见性最具限制性。当只有类本身才可以使用操作时,使用这种可见性。它是私有可见性的变体。

<九>面向对象分析之UML核心元素之设计类,类,属性,方法,可见性的更多相关文章

  1. <四>面向对象分析之UML核心元素之用例

    一:基本概念        --->用例定义了一组用例实例,其中每个实例都是系统所执行一系列操作,这些操作生成特定主角可以观测的值.        --->所谓用例,就是一件事情,要完成这 ...

  2. <十>面向对象分析之UML核心元素之关系

    关系        --->在UML中关系是非常重要的语义,它抽象出对象之间的联系,让对象构成特定的结构.        一,关联关系(association)

  3. <五>面向对象分析之UML核心元素之边界

    一:基本概念

  4. <八>面向对象分析之UML核心元素之分析类

    一:基本概念        ---->在那大数项目中,分析类是被忽视的一种非常有用的元素.        ---->分析类用于获取系统中主要的“职责簇”,他们代表系统的原型类,是系统必须处 ...

  5. <三>面向对象分析之UML核心元素之参与者

    一:版型        --->在UML里有一个概念叫版型.有些书里也称类型,构造型.        --->这个概念是对一个UML元素基础定义的扩展.在同一个元素基础定义的基础上赋予特别 ...

  6. <十二>面向对象分析之UML核心元素之节点和设备

    节点,设备

  7. <七>面向对象分析之UML核心元素之包

    一:基本概念 

  8. <六>面向对象分析之UML核心元素之业务实体

    一:基本概念

  9. <十一>面向对象分析之UML核心元素之组件

    组件

随机推荐

  1. 找不到对应的webservice配置参数[ProcessService]

    在UI端 保存时 界面显示无法保存 且报此错误 “找不到对应的webservice配置参数[ProcessService]” 此下为解决方法: 首先 在[应用管理平台]--[参数模板设置] 找到你的参 ...

  2. BT5之Metasploit[MSF]连接postgresql数据库

    1,先查看postgresql的端口,默认是自动开启的,端口7337 .   root@bt:~# netstat -tnpl |grep postgres tcp        0      0 1 ...

  3. 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

    先写我的思路,没有用指针的做法.如果你用的是VC,把第六行去掉. #include<stdio.h> #include<stdlib.h> int main() { setvb ...

  4. 字符串匹配--kmp算法原理整理

    kmp算法原理:求出P0···Pi的最大相同前后缀长度k: 字符串匹配是计算机的基本任务之一.举例,字符串"BBC ABCDAB ABCDABCDABDE",里面是否包含另一个字符 ...

  5. Guava文档翻译之 Service

    概览 Guava的接口代表了一个有运行状态的对象,有启动和停止的方法.比如网络服务器,RPC服务器,以及计时器等,都可以实现Service接口.掌管像这样的服务的状态,需要正确地管理启动和关闭,因此会 ...

  6. 求和问题总结(leetcode 2Sum, 3Sum, 4Sum, K Sum)

    转自  http://tech-wonderland.net/blog/summary-of-ksum-problems.html 前言: 做过leetcode的人都知道, 里面有2sum, 3sum ...

  7. HDU 1540 / POJ 2892 Tunnel Warfare (单点更新,区间合并,求包含某点的最大连续个数)

    题意:一条线上有n个点,D x是破坏这个点,Q x是表示查询x所在的最长的连续的点的个数,R是恢复上一次破坏的点. 思路:这题的关键是查询. 将被毁的村庄看成空位,当查询某个点的时候,如果我们知道它左 ...

  8. Android ImageButton的背景(图片)大小

    使用ImageButton的background属性,而不用src属性. 然后使用width和height进行调整.

  9. [Browsable(false)]

    1.c#方法上面的[Browsable(false)]是干吗用的? 答案:标明此对象不可被浏览,这样它就不会出现在设计器的属性窗口里了 看如下代码: /// <include file='Asp ...

  10. cojs 疯狂的粉刷匠 疯狂的斐波那契 题解报告

    疯狂的斐波那契 学习了一些奇怪的东西之后出的题目 最外层要模p是显然的,然而内层并不能模p 那么模什么呢,显然是模斐波那契的循环节 那么我们可以一层层的求出每层的斐波那契循环节 之后在从内向外用矩阵乘 ...