我處於下一個任務的設計階段,我不確定我的想法是否正確,因爲我不太確定如何在UML圖中實現它。我很感激你對此的評論。類之間的共享列表
基本上,重點是我將有一個讀者和一個作家類。它們將用於讀取和寫入某個數據源的值,即數據庫或modbus PLC。這些值中的每一個都由我的數據模型和數據源中的唯一標識標識。讀取操作將通過發送其所有ID並查詢其值來定期執行所有值。每次在我的數據模型中這些值中的一個發生更改時,都會執行寫入操作,並且需要將其發送到此數據源。
我的想法是爲讀者和包含數據模型中所有對象的作者提供共享列表。例如:
class ExternalObject {
private String id;
private String transactionId;
private String value;
private String lastValue;
}
將會有一個控制器類,當在我的數據模型的值的變化將在正確的對象的值屬性,那麼Writer類寫,也就是通過的所有元素進行迭代該列表會一直顯示該值不爲空併發送它。之後,它會將其重置爲空並將其設置爲最後一個值。 此外,Reader類始終從此數據源讀取值,當發現讀取的值與lastValue不同時,它會將其保存在我的數據模型中。
現在我想你已經明白了。當沒有與數據源連接或發送初始值或讀取它們時,當然會有更多的邏輯來重置值,但這是另一回事。
我的問題是這個共享列表。我不確定在面向對象設計中是否可以共享這樣的列表或對象。如果這很好,那麼接下來就是我不知道如何在UML圖中對它進行建模,以表明一個對象在兩個類之間共享。
任何想法都非常受歡迎。
是否有其他更改數據源?因爲否則週期性地從數據源讀取數據不會給你任何新的信息,因爲它已經在你的數據模型中。 – Soana 2014-09-24 11:04:07
是的,數據源中的值隨其他應用程序也可能寫入其中而變化。知道變化的唯一方法是定期查詢所有不同的值。 – 2014-09-24 11:34:05