Właściwości wspólne dla niektórych losowo kombinacji Person
i Company
przykład może być modelowany za pomocą „klasy asocjacji”.
Jest to zapis w UML i nie jest trudno stworzyć taką koncepcję w rozszerzalnym języku programowania.
Chodzi o to, że dowolna przypadkowa para obiektów składających się z Person
i Company
ma związek, a ta relacja sama w sobie jest obiektem. Nie jest to ani Person
ani Company
, ale rzeczy związane z połączeniem między konkretną instancją Person
i Company
.
Te rzeczy (właściwości, metody) stanowią klasę: klasa stowarzyszenia Person-Company
.
Zrobiłem tę pracę w Lisp wcześniej, z niektórymi makrami do definiowania klasy asocjacyjnej dla danej pary klas oraz globalną tabelą skrótów dla odwzorowywania par obiektów do ich obiektu klasy asocjacyjnej (tak, że dla danej osoby i firma mogła odzyskać skojarzenie, a to skojarzenie zniknęłoby, gdy te obiekty staną się śmieciami).
Rzeczywiste połączenie między poszczególnymi firmami i ludźmi jest łatwe, np. listy lub inne asocjacyjne struktury danych. Obiekt osoby może mieć listę firm i odwrotnie. Idea klasy stowarzyszeniowej rozwiązuje problem polegający na tym, gdzie umieścić rzeczy osoby i firmy. Na przykład każdy Person
ma rolę w Company
(powiedzmy). Nie możemy mieć zmiennej role
w Person
, ponieważ może ona mieć wiele ról w wielu firmach. Z pewnością nie możemy mieć w firmie role
, ponieważ nie jest to nawet osoba; ludzie mają z nim związane role. Rola może zostać włączona do stowarzyszenia: problem rozwiązany.
możliwe duplikat [Modelowanie relacji rodzic-dziecko z klasami] (http://stackoverflow.com/questions/4089582/modelling- relacje rodzic-dziecko-z klasami) –