簡體   English   中英

在相同類別的特定實例之間共享數據

[英]Share data between specific instances of same class

我有以下問題。 假設我們有兩個類Assignment的實例。 每個實例都有一個開始日期和一個結束日期。 當第一個任務結束時,第二個任務開始。 現在,我在第一個作業中有了一些信息,當第一個作業過期時,第二個作業中也需要這些信息。

對於這兩個實例,我都需要像靜態變量這樣的東西,但對於整個類,則不是靜態的。

做這個的最好方式是什么?

謝謝

馬蒂亞斯

===============編輯===============

我認為我的問題不夠具體。 我知道如何將數據從一個復制到另一個,但這在這種情況下不合適。

我的任務是解決員工與項目之間的聯系:n關系。 但是一位員工可能對同一個項目有多個任務,因此我需要對所有任務都非常重要的信息。

如果我更新了分配1中的信息,則應該在將員工連接到該特定項目的所有其他分配中進行更新。 出於性能方面的考慮,我寧願在一個中心位置進行更改,而不要手動復制信息。

===============編輯===============

我考慮了這個問題,並且我認為如果每個作業都引用了該信息,我的問題就可以解決。 這樣,其中一項分配的更改應自動分配給其他分配。

===============編輯===============

Abaddon666的答案和注解是正確的,剩下的問題是如何以適當的方式共享對所有作業實例的引用。 我們以這種方式解決了該問題,即我們在數據庫中使用一個表,在該表中,我們使用兩個外鍵存儲信息,並在需要時為員工和特定項目加載信息。 我會接受Abaddon666的答案,但也許有一個比當前更好的解決方案。

您要嘗試實現的是基本的Composition 您希望1到x個特定類型的實例共享相同的值。 這可以通過創建一個為共享信息建模的類並將其作為字段添加到您的作業中來實現:

public class Assignment{
    private Date startDate;
    private Date endDate;
    private Information information;

    public Assignment(Information information){
         this.information = information
    }

    public Information getInformation(){
         return this.information
    }
...
}

...

Information sharedInformation = new Information();
Assignment assignment1 = new Assignment(sharedInformation);
Assignment assignment2 = new Assignment(sharedInformation);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM