码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-06-26 11:00:58      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:设计模式   编程语言   


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的生死即可



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

标签:设计模式   编程语言   

原文地址:http://blog.csdn.net/hitzjm/article/details/46645631

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!