为了把项目关键的东西写上blog
我决定装B一把。画一些UML图。可是呢,遇到很多问题
现在就来说一下我对这几个小东西的理解
首先呢,我看到2个名词:组合(强聚合)和聚合

上面那个实心菱形是组合,下面这个空心的是聚合,2种都是has-a的关系,但是据资料描述:组合里面拥有者要对被拥有者的生命进行负责
class a
{
}
;
class b
{
a aobject;
}
;

b可以认为是a组合起来的,而假设我写下如下代码
class c
{
  a
* pa;
  c()
  
{
     pa 
= new a;
  }

   
~c()
   
{
     delete pa;
   }

}
这个应该被认为是组合关系(欢迎拍砖)

小心翼翼的看完这2个关系之后,我又继续看到了一个名词:依赖

依赖关系,表示一个类的实现会影响到另一个类的结果,比如上图,buy,比如buy car。。。而car有很多种,比如奔驰,宝马,而各种生产厂商的不同型号的汽车是不一样的,包括参数,配置,等,如果我修改了car,而person这时候再执行buy(car)的时候,得到的结果就会不同,这个也就是一个明显的依赖关系,而我在暑假的哪个项目中,很明显,2个主要的父类产生了明显的类似上面的依赖关系,在依赖关系中,2个实体可能在空间上没有交集,但是却通过某的接口产生了关系,应该也算是多态吧。。。

最后,我又看到一个鸟词:关联
跟聚合那玩意儿意思很接近的东西,UML图上是一条实心线
简单的想想,
比如一个学生寝室:有4个床位,4个学生,这4个学生跟寝室貌似可以认为是一种关联关系(学生可以走,可以换,更可以允许空床的存在),4个床位跟寝室属于聚合关系,而床位有几个铁零件组成,随便坏一个,这个床就不存在了(在某种情况下可以说他们生命周期同步。。。虽然他们都可以换,但是床可以被认为是寝室的属性,而床的铁零件也是床的组成部分)。
刚刚接触UML...如果有错误请不吝赐教。。。。
感觉这一切不能靠主观,没有一个评价硬性标准。。。完全是要靠设计者的思路,具体做什么,再判断。。。