什么是类元呢?

类元是模型中的离散概念,拥有身份、状态、行为和关系。有几种类元包括类、接口和数据类型。其他几种类元是行为概念、环境事物、执行结构的具体化。这些类元中包括用例、参与者、构件、节点和子系统。

 

类             模型系统中的概念           name
状态类       局限于某个给定状态的类 Name[S]
类元角色    在合作中局限于某个使用的类元 roleName
构件          系统的一个物理组成单元
数据类型    无身份得一组原始值的描述符 Name
接口          刻划行为特征的操作命名集   Iname
节点          计算资源
信号          对象间的异步通信 <<Signal>>
子系统       作为且有规范、实现和身份的单元的包 <<subsystem>>
用例          与外界代理交互中的实体行为说明

 

1 类

类代表了被建模的应用领域中的离散概念—物理实体(如飞机)、商业事物(如一份订单)、逻辑事物(如广播计划)、应用事物(如取消键)、计算机领域的事物(如哈希表)或行为事物(如一项任务)。类是有着相同结构、行为和关系的一组对象的描述符号。所用的属性与操作都被附在类或其他类元上。类是面向对象系统组织结构的核心。
对象是具有身份、状态和可激发行为的离散实体。对象是用来构造实际运行系统的个体;类是用来理解和描述众多个别对象的个别概念。
类定义了一组有着状态和行为的对象。属性和关联用来描述状态。属性通常用没有身份的纯数据值表示,如数字和字符串。关联则用有身份的对象之间的关系表示。个体行为由操作来描述,方法是操作的实现。对象的生命期由附加给类的状态机来描述。类的表示法是一个矩形,由带有类名、属性和操作的分格框组成。

 

一组类可以用泛化关系和建立在其内的继承机制分享公用的状态和行为描述。泛化使更具体的类(子类)与含有几个子类公同特性的更普通的类(超类)联系起来。一个类可以有零个或多个父类(超类)和零个或多个后代(子类)。一个类从它的双亲和祖先那里继承状态和行为描述,并且定义它的后代所继承的状态和行为描述。
类在它的包含者内有唯一的名字,这个包含者通常可能是一个包但有时也可能是另一个类。类对它的包含者来说是可见性,可见性说明它如何被位于它的可见者之外的类所利用。
类的多重性说明了有多少个实例可以存在,通常情况下,可以有多个(零个或多个,没有明确限制),但在执行过程中一个实例只属于一个类。
2 接口
接口是在没有给出对象的实现和状态的情况下对对象行为的描述。接口包含操作但不包含属性,并且它没有对外界可见的关联。一个或多个类或构件可以实现一个接口,并且每个类都可以实现接口中的操作。
3 数据类型
数据类型用以描述缺少身份的简单数据值。数据类型包括数字、字符串、枚举型数值。数据类型通过值来传递,并且是不可变的实体。数据类型没有属性,但是可以有操作。操作不改变数据值,但是可以把数据值作为结果返回。
4 含义分层
类可以存在于模型的几种含义层中,包括分析层、设计层和实现层。当表现真实世界的概念时,说明实际的状态、关系和行为是很重要的。但是像信息隐藏、有效性、可见性和方法这些实现方面的概念与真实世界的概念无关(它们是设计层的概念)。分析层的类代表了在应用域中的逻辑概念或应用本身。分析层模型应该尽可能少地表示建模的系统,并在不涉及到执行和构造的情况下,充分说明系统的必要逻辑组成。
当表示高层次的设计时,有些概念与类直接相关,这些概念包括特定类的状态定位、对象之间导航的效率、外部行为和内部实现的分离和准确操作的描述。设计层类表示了将状态信息和其上的操作封装于一个离散的单元,它说明了关键的设计决定、信息定位和对象的功能。设计层类包含真实世界和计算机系统两方面的内容。
最后,当实现程序代码时,类的形式与所选择的语言紧密相关。如果一个通用类的功能不能直接用语言来实现,那么不得不放弃它们。实现层类直接与程序代码相对应。同一个系统可以容纳多个层次的类,面向实现的类会在模型中实现更逻辑化的类。一个实现类表示用特定程序设计语言声明一个类,它得到了一个按照语言所要求的准确格式的类。然而,在许多情况下,分析、设计和实现信息可嵌套在一个单独的类中。

时间: 2024-09-17 01:31:23

什么是类元呢?的相关文章

Lua中使用元表(metatable)执行算术类元方法实例_Lua

上一节对元表和元方法有了一个初步的认识,这篇就来举个最简单的例子吧,加深一下印象,也为后续内容做准备. 1.元方法名 Lua其实已经规定好了各种算术操作符的元方法名字,如: __add:加法 __sub:减法 __mul:乘法 __div:除法 __unm:相反数 __mod:取模 __pow:乘幂   只要在自定义元表的时候,给这些元方法名赋予新的函数就可以实现自定义操作了. 2.例子 开始举例吧,我们新建一个自定义的元表(也就是一个table变量),用来定义一些操作: 复制代码 代码如下:

深入理解Python中的元类(metaclass)_python

译注:这是一篇在Stack overflow上很热的帖子.提问者自称已经掌握了有关Python OOP编程中的各种概念,但始终觉得元类(metaclass)难以理解.他知道这肯定和自省有关,但仍然觉得不太明白,希望大家可以给出一些实际的例子和代码片段以帮助理解,以及在什么情况下需要进行元编程.于是e-satis同学给出了神一般的回复,该回复获得了985点的赞同点数,更有人评论说这段回复应该加入到Python的官方文档中去.而e-satis同学本人在Stack Overflow中的声望积分也高达6

:before和:after伪类元素创造神奇效果

文章简介:伪类元素之美. 通过使用:before和:after,你能创作出让人称奇的视觉效果.对页面中的每个元素,你都有两个额外的可以控制的元素,本来这些是需要额外的元素来实现.他们给设计带来了更多的趣味性的空间,而不是增加无语义的有负面影响的标签.这里给大家整理了一堆让人称奇的东西.让我们开始吧! 给了你多层背景画布 因为你可以相对于他们的父元素绝对定位伪类元素,你可以把他们想象他们是每个元素的两个额外层.Nicolas Gallagher shows us 给我们展示了很多这种应用,包括多层

深入理解JavaScript系列(37):设计模式之享元模式详解_基础知识

介绍 享元模式(Flyweight),运行共享技术有效地支持大量细粒度的对象,避免大量拥有相同内容的小类的开销(如耗费内存),使大家共享一个类(元类). 享元模式可以避免大量非常相似类的开销,在程序设计中,有时需要生产大量细粒度的类实例来表示数据,如果能发现这些实例除了几个参数以外,开销基本相同的 话,就可以大幅度较少需要实例化的类的数量.如果能把那些参数移动到类实例的外面,在方法调用的时候将他们传递进来,就可以通过共享大幅度第减少单个实例 的数目. 那么如果在JavaScript中应用享元模式

轻松掌握JavaScript享元模式_javascript技巧

在JavaScript中,浏览器特别是移动端的浏览器分配的内存很有限,如何节省内存就成了一件非常有意义的事情.节省内存的一个有效方法是减少对象的数量.  享元模式(Flyweight),运行共享技术有效地支持大量细粒度的对象,避免大量拥有相同内容的小类的开销(如耗费内存),使大家共享一个类(元类).  享元模式可以避免大量非常相似类的开销,在程序设计中,有时需要生产大量细粒度的类实例来表示数据,如果能发现这些实例除了几个参数以外,开销基本相同的话,就可以大幅度较少需要实例化的类的数量.如果能把那

Java设计模式之共享模式/享元模式(Flyweight模式)介绍_java

Flyweight定义:避免大量拥有相同内容的小类的开销(如耗费内存),使大家共享一个类(元类). 为什么使用共享模式/享元模式 面向对象语言的原则就是一切都是对象,但是如果真正使用起来,有时对象数可能显得很庞大,比如,字处理软件,如果以每个文字都作为一个对象,几千个字,对象数就是几千,无疑耗费内存,那么我们还是要"求同存异",找出这些对象群的共同点,设计一个元类,封装可以被共享的类,另外,还有一些特性是取决于应用(context),是不可共享的,这也Flyweight中两个重要概念内

Lua中的元表与元方法学习总结_Lua

前言 元表对应的英文是metatable,元方法是metamethod.我们都知道,在C++中,两个类是无法直接相加的,但是,如果你重载了"+"符号,就可以进行类的加法运算.在Lua中也有这个道理,两个table类型的变量,你是无法直接进行"+"操作的,如果你定义了一个指定的函数,就可以进行了.那这篇博文就是主要讲的如何定义这个指定的函数,这个指定的函数是什么?希望对学习Lua的朋友有帮助. Lua是怎么做的? 通常,Lua中的每个值都有一套预定义的操作集合,比如数

Lua元表与元方法实例讲解_Lua

Lua中提供的元表(metatable)与元方法(metamethod)是一种非常重要的语法,metatable主要用于做一些类似于C++重载操作符式的功能. Lua中提供的元表是用于帮助lua变量完成某些非预定义功能的个性化行为,如两个table的相加,通过让两者指向同一元表并修改该元表的元方法可以实现该功能. 任何table都可以成为任何值的元表,而一组相关的table也可以共享一个元表. 一些MetaMethod: 复制代码 代码如下: __add(a, b)               

《大规模元搜索引擎技(1)》一2.2 为什么使用元搜索引擎技术

2.2 为什么使用元搜索引擎技术 本节试图全面分析元搜索引擎相对搜索引擎的潜在优势.我们主要关注通用元搜索引擎和通用搜索引擎的比较. 1.扩大搜索范围 元搜索引擎可以通过能够统一访问所有成员搜索引擎的功能搜索到被至少一个成员搜索引擎索引到的任何文档.因此,元搜索引擎的搜索范围是其成员搜索引擎搜索范围的并集.这个益处是早期元搜索引擎背后的主要动因,目前仍然是最公认的益处.2.1节描述了两种可能的方法来实现通用元搜索引擎,即主流搜索引擎方法和大规模元搜索引擎方法.术语"扩大搜索范围"对这两