Class 本例中的合成或聚合

Class 本例中的合成或聚合,class,uml,diagram,Class,Uml,Diagram,我知道这个理论,但很明显,当它涉及到现实世界时,我就是不知道。在下面的示例中,游戏和玩家/棋盘之间的关系是一种组合(它们在游戏类中实例化)?在棋盘和棋子之间-聚集,因为棋盘可以存在0个棋子 Class Game { Player p; Gameboard b; void Start() { p=new Player(); b=new Gameborad(); } } class Gameboard { List<pawn> list

我知道这个理论,但很明显,当它涉及到现实世界时,我就是不知道。在下面的示例中,游戏和玩家/棋盘之间的关系是一种组合(它们在游戏类中实例化)?在棋盘和棋子之间-聚集,因为棋盘可以存在0个棋子

Class Game
{
   Player p;
   Gameboard b;
  void Start()
  {
     p=new Player();
     b=new Gameborad();
  }
}

class Gameboard
{
   List<pawn> listOfpawns=new List<pawn>();
}
}
类游戏
{
玩家p;
游戏板b;
void Start()
{
p=新玩家();
b=新Gameborad();
}
}
类游戏板
{
List listOfpawns=新列表();
}
}

组合和聚合的区别不在于棋盘是否可以零棋子存在,而在于棋子是否可以没有棋盘存在,以及玩家和游戏棋盘是否可以没有游戏存在

换句话说,如果摧毁一个游戏会摧毁所有玩家和棋盘,那么你就有了组合。如果玩家和棋盘可以生活在游戏之外,那么你有聚合

如果用消灭棋子来消灭棋盘,那么你就有了构图。如果典当没有棋盘也能生存,你就有了聚集

一般来说,如果破坏容器会破坏其元素,这就是合成。其存在不依赖于容器的元素称为由聚合持有

聚合的典型示例有:

  • 联盟内的国家,因为如果联盟解散,国家将继续存在
  • 组织中的人,因为当组织不存在时,人仍然活着
构图的经典例子有:

  • 一个人的时间表,因为如果他离开,时间表也会离开

组合和聚合的区别不在于棋盘是否可以零棋子存在,而在于棋子是否可以没有棋盘存在,以及玩家和游戏棋盘是否可以没有游戏存在

换句话说,如果摧毁一个游戏会摧毁所有玩家和棋盘,那么你就有了组合。如果玩家和棋盘可以生活在游戏之外,那么你有聚合

如果用消灭棋子来消灭棋盘,那么你就有了构图。如果典当没有棋盘也能生存,你就有了聚集

一般来说,如果破坏容器会破坏其元素,这就是合成。其存在不依赖于容器的元素称为由聚合持有

聚合的典型示例有:

  • 联盟内的国家,因为如果联盟解散,国家将继续存在
  • 组织中的人,因为当组织不存在时,人仍然活着
构图的经典例子有:

  • 一个人的时间表,因为如果他离开,时间表也会离开

    • 成分

      对象包含按值存储的其他对象。这些元素通常是您认为包含它们的对象的内部元素,就像cardDeck对象具有卡对象一样。即使最初没有填充甲板,这些物体在保持物体内部也大多只有用途

      聚合

      一个对象包含对其他对象的引用,聚合对象是存在于另一个上下文中的程序中的对象,父对象只是出于组织或功能原因而保存它们。下面的场地参照中给出的示例是容纳人员对象的平面。这些人可以来来去去,也可以在程序的其他部分使用

      在这种情况下:

      我想说的是,你的例子更符合作文的要求。就像一副扑克牌,棋子在棋盘之外没有什么意义

      术语

      “按价值”或“按参照”的文字性取决于语言,当人们在这种情况下说一种或另一种时,他们用它来表示父母拥有的关系有多牢固

      当然,在Java中,所有对象都是通过引用存储的,但是!一旦不存在对对象的引用,它最终会被GC剔除。飞机很可能持有对发动机的唯一引用,因此当飞机被移除时,发动机会熄灭。除了飞机之外,人们还可以有其他的参照物,所以你可以不那么认为飞机直接抓住了他们


      (参考)构图

      对象包含按值存储的其他对象。这些元素通常是您认为包含它们的对象的内部元素,就像cardDeck对象具有卡对象一样。即使最初没有填充甲板,这些物体在保持物体内部也大多只有用途

      聚合

      一个对象包含对其他对象的引用,聚合对象是存在于另一个上下文中的程序中的对象,父对象只是出于组织或功能原因而保存它们。下面的场地参照中给出的示例是容纳人员对象的平面。这些人可以来来去去,也可以在程序的其他部分使用

      在这种情况下:

      我想说的是,你的例子更符合作文的要求。就像一副扑克牌,棋子在棋盘之外没有什么意义

      术语

      “按价值”或“按参照”的文字性取决于语言,当人们在这种情况下说一种或另一种时,他们用它来表示父母拥有的关系有多牢固

      当然,在Java中,所有对象都是通过引用存储的,但是!一旦不存在对对象的引用,它最终会被GC剔除。飞机很可能持有对发动机的唯一引用,因此当飞机被移除时,发动机会熄灭。除了飞机之外,人们还可以有其他的参照物,所以你可以不那么认为飞机直接抓住了他们

      (参考