Các đặc tính chung cho một số kết hợp ngẫu nhiên của một trường hợp Person
và Company
thể được mô hình sử dụng một "lớp hiệp hội".
Có một ký hiệu cho điều này trong UML và không khó để tạo khái niệm như vậy bằng ngôn ngữ lập trình có thể mở rộng.
Ý tưởng là bất kỳ cặp ngẫu nhiên nào của các đối tượng bao gồm Person
và Company
đều có mối quan hệ và mối quan hệ đó chính là đối tượng. Nó không phải là Person
cũng không phải Company
, nhưng nội dung được liên kết với kết nối giữa một cá thể Person
và Company
cụ thể.
Công cụ (thuộc tính, phương pháp) cấu thành một lớp: lớp kết hợp Person-Company
.
Tôi đã thực hiện công việc này trong Lisp trước đây, với một số macro để xác định lớp kết hợp cho một cặp lớp đã cho và bảng băm yếu toàn cầu để ánh xạ cặp đối tượng đến đối tượng lớp liên kết của chúng công ty đã có thể lấy lại liên kết, và sự kết hợp đó sẽ biến mất khi những vật thể này trở thành rác thải).
Liên kết thực tế giữa các công ty cụ thể và mọi người thật dễ dàng, bằng cách sử dụng ví dụ: danh sách hoặc cấu trúc dữ liệu liên kết khác. Một đối tượng người có thể có một danh sách các công ty và ngược lại. Ý tưởng lớp liên kết giải quyết vấn đề về vị trí đặt nội dung của công ty. Ví dụ: mỗi Person
có vai trò trong một số Company
(giả sử). Chúng tôi không thể có biến số role
trong số Person
vì nó có thể có nhiều vai trò với nhiều công ty. Chúng tôi chắc chắn không thể có một role
trong công ty bởi vì nó thậm chí không phải là một người; nó có những người liên kết với nó có vai trò. Vai trò có thể đi vào hiệp hội: vấn đề được giải quyết.
thể trùng lặp của [Mẫu mối quan hệ cha-con với Lớp học] (http://stackoverflow.com/questions/4089582/modelling- mối quan hệ cha-con-với-lớp) –