建模语言的概念 与编程语言概念对应关系(入门必读)

1. 泛化(Generalization)

在c++中对应继承,如B是A的泛化,在C++中表现为:

<pre name="code" class="cpp"><span style="font-family: Arial, Helvetica, sans-serif;">class B : public A</span>
{
  <span style="font-family: Arial, Helvetica, sans-serif;">    public:</span>
<span style="white-space:pre">	</span>B() {}
	virtual ~B() {
	}
}

2.实现(Realization)

在C++中对应,对应是虚拟函数的概念,如B实现了A,是实现了A中虚拟函数的具体功能(接口),在C++中表现:

class A
{
    public:
	A() {}
	virtual ~A() {}
	virtual void fun(int x,int y) =0;

};
<pre name="code" class="cpp"><span style="font-family: Arial, Helvetica, sans-serif;">class B : public A</span>
{
  <span style="font-family: Arial, Helvetica, sans-serif;">    public:</span>
<span>	</span>B() {}
	virtual ~B() {}
<pre name="code" class="cpp"><span style="white-space:pre">	</span>virtual void fun(int x,int y);

}

3.关联(Associate)

是一种伙伴关系,如B关联了A,
B知道A的属性与方法(B可以使用A的属性与方法),在C++中对应 方法的参数:

<pre name="code" class="cpp"><pre name="code" class="cpp">class B {
      public:
	B() {}
	virtual ~B() {}
	void fun(A *m_A);
}



4.聚合关系(Aggregation)

是整体与个体的关系,是一种联合国样式的组织,是一种弱包含,每个个体都可以独立存在。在C++中对应的属性生命周期的概念聚合关系中,个体的生命周期不归整体掌控。

<pre name="code" class="cpp"><span style="font-family: Arial, Helvetica, sans-serif;">class B </span>
{
  <span style="font-family: Arial, Helvetica, sans-serif;">    public:</span>
<span>	</span>B() {}
	virtual ~B() {}
<span>	</span>A *m_A;
}

在具体实现中,A的个体在B之外生成,在适当的时候把个体以指针的形式传递给B即可。

5.组合关系(Composition)

是整体与个体的关系,是一种同生共死的组织,是一种强包含,每个个体都不可以独立存在。在C++中对应的属性生命周期的概念组合关系中,个体的生命周期归整体掌控。

<pre name="code" class="cpp"><span style="font-family: Arial, Helvetica, sans-serif;">class B </span>
{
  <span style="font-family: Arial, Helvetica, sans-serif;">    public:</span>
<span>	</span>B() {}
	virtual ~B() {}
<span>	</span>A m_A;
}

在具体实现中也可以用指针,这时候要注意B要掌管A的生死即可

时间: 2024-08-02 08:11:09

建模语言的概念 与编程语言概念对应关系(入门必读)的相关文章

建模语言的概念 与编程语言概念相应关系(入门必读)

1. 泛化(Generalization) 在c++中相应继承,如B是A的泛化,在C++中表现为: class B : public A { public: B() {} virtual ~B() { } } </pre><pre> 2.实现(Realization) 在C++中相应,相应是虚拟函数的概念,如B实现了A.是实现了A中虚拟函数的详细功能(接口),在C++中表现: class A { public: A() {} virtual ~A() {} virtual void

统一建模语言UML整理之开篇

引言: 这段时间将致力于写UML方面的博客,由于个人能力的有限,如果博客中出现错误的地方还请广大博友批评指正.为了更好地了解一个过程或者事物,人们通常根据所研究对象的某些特征(形状.结构.或行为等)建立相关的模型(Model).模型是从一个特定的视点对系统进行的抽象,它可以是实物模型,例如建筑模型,教学模型.玩具等,也可以是抽象数字或图示模型,例如数学公式或图形等.模型建立的目的不是复制真实的原物,而是帮助人们更好的理解复杂的事物本质,反应过程或事物内部各种因素执念的相互关系.下面就让我们进入U

语言和文法的基本概念

在读正则语言之前先明确一下语言.文法的基本概念. 一.基本概念 语言 首先给出一个有限的.非空的符号集合Σ,成为字母表. 字母表中任意字符组成的字符串就是一个句子,比如aaa,bbb,即Σ*的元素. 这些字符串构成的集合就是一个语言,比如{aaa,bbb},即Σ*的子集. 举一个例子: Σ={a,b},则Σ*={ε,a,b,aa,ab,bb,aaa,bbb,...},里面的每一个元素都是一个句子,集合{a,aa,bbb}就是Σ上的一个语言,因为它有有限个句子,所以称之为有限语言.集合L={a?b

MongoDB入门必读(概念与实战并重)

MongoDB入门必读(概念与实战并重) 一.概述 MongoDB是一个基于分布式文件存储的数据库开源项目.由C++语言编写.旨在为WEB应用提供可护展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型.Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝

软件建模语言

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 软件建模语言: 软件建模需要交流,所

Atitit.软件的建模种类and 建模语言选型and UML???

Atitit.软件的建模种类and  建模语言选型and UML??? 1. 4大的建模种类:ui建模,业务流程建模 , 业务对象建模, 数据库建模 1 2. 文本还是图片化(推荐)的建模 1 3. 通常建模语言UML,psodo,流程图.. 1 4. 静态结构+动态语义 1 5. 建模工具..dw/ps, jbpm/reg engine  , 1 6. ui建模语言html,css 1 7. Ui层次流程建模js?? 1 8. 业务对象建模语言java,uml 1 8.1. 显示类结构outl

DBA_Oracle DBA分区概念汇总(概念)

2014-06-20 BaoXinjian 一.摘要 有关表分区的一些维护性操作: 注:分区根据具体情况选择. 表分区有以下优点: 1.数据查询:数据被存储到多个文件上,减少了I/O负载,查询速度提高. 2.数据修剪:保存历史数据非常的理想. 3.备份:将大表的数据分成多个文件,方便备份和恢复. 4.并行性:可以同时向表中进行DML操作,并行性性能提高. 二.分区操作 1. 添加分区 以下代码给SALES表添加了一个P3分区 ALTER TABLE SALES ADD PARTITION P3

UML建模语言

UML建模语言 UML(unified modeling language)  俗称统一建模语言,也叫建模工具. 它是一种用来对真实世界物体进行建模的标准标记,这个建模的过程是开发面向对象设计方法的第一步.它的标记起源于并统一于三种面向对象设计和分析方法的标记:    Grady Booch的描述对象集合和它们之间的关系的方法    James Rumbaugh的对象建模技术(OMT)    Ivar Jacobson的包括用例方法的方式 其中UML定义了5类,10种模型图 五种类图定义 用例图

OO第三单元总结——java建模语言

一.JML语言的理论基础 面向对象分析和设计的原则之一就是应当尽可能地把过程设想往后推.我们大多数人只在实现方法之前遵守这一规则.一旦确定了类及其接口并该开始实现方法时,我们就转向了过程设想. Java 建模语言(JML)将注释添加到 Java 代码中,这样我们就可以确定方法所执行的内容,而不必说明它们如何做到这一点.有了 JML,我们就可以描述方法预期的功能,无需考虑实现.通过这种方法,JML 将延迟过程设想的面向对象原则扩展到了方法设计阶段. 二.JML应用工具链 openJML可以检查规格