我正在嘗試在我的工作場所構建服務器和應用程序的模型。服務器可以託管許多應用程序。應用程序可以託管在許多服務器上。與中間字段存在的對象的多對多關係?
通常我只是讓宿主類包含一個List,而應用程序類是一個List。但是,有幾個特定於特定主機 - 應用程序關係的字段。例如,UsedMb表示應用程序在主機上使用的磁盤空間量。
我當然可以有一個HostedApplicationclass,代表一箇中間對象,它可以容納UsedMb字段。 Host和Application類都會包含一個List。
但問題是,應用程序還需要了解將包含在Host類中的Host的某些方面(例如,主機在地理上是分佈式的;應用程序需要知道有多少個數據中心它需要能夠檢查所有主機的DC名稱
因此,我可以讓HostedApplication類持有對它引用的Host對象和Application對象的引用。在某些情況下,我需要遍歷所有應用程序(在其他情況下,所有主機)。因此,我需要3個單獨的列表,列表,列表和列表,以便能夠根據需要循環遍歷所有三個列表。
我的基本問題是,處理這種配置的標準方式是什麼?所有選項都有優點和缺點。我提到的最後一個選項似乎是最正確的,但是有三個列表矯枉過正?有沒有更優雅的解決方案?
sji,這是一個好主意,而且會是理想的,但對於我忽略提及的一個問題......這必須在VBA中完成。因此,不允許繼承:(但是,我可以使用包裝類來做類似的事情,而不是直接持有主機的應用程序。我相信未來,一旦所有關於主機和應用程序的數據最終都安裝在數據庫中,我們可能會把它轉換成更通用的語言,所以我會牢記這一點,但現在我堅持使用excel – Swiftslide
@Swiftslide我已經添加到我的答案中,提供了另一種可能的解決方案。 VBA我認爲包裝類將是您可以獲得的最佳解決方案。 – sji