我有一個應用程序,我需要用戶Observer來解決。由於代碼實現很長,我想總結一下這個問題。使用Observer和Observable解決應用程序
我開始申請。
我有一個LogInWindow,我可以選擇司或學生。
祕書可以爲給定課程的學生添加學生,課程和成績。 學生只能看到其結果。
我需要使用Observer,這樣如果一個祕書登錄到該應用程序的一個實例中,並且學生在該應用程序的另一個實例中登錄,當祕書在該課程中爲該學生添加結果時,該學生看到立即在其名單上列出新課程及其結果。
從txt文件中讀取數據。
我的解決方案。 SecretaryWindow是觀察員 StudentWindow是觀察員 ResultRepositoryFile是可觀察對象
當我點擊Add按鈕的控制器中添加一個結果(studentName,courseName,結果)的ResultRepositoryFile。 SecretaryWindow觀察者認爲,打印一條消息並保存包含ResultRepositoryFile的txt文件。
現在StudentWindow我點擊一個RefreshButton和ResultRepositoryFile在列表中重新加載從這個窗口,顯示出新添加的Result.class
這是做正確的方式,因爲我有疑慮。
如何使用Observer同步同一應用程序的兩個實例?
感謝您的閱讀,並希望您能幫助我。
+1。很好的建議使用MySQL而不是文本文件。你認爲這很重要,你錯了。這實際上比這更重要;)。另外,我認爲Observable模式的使用在這裏是強制性的(我懷疑它在要求中)。 –
感謝您的建議,但不幸的是,數據是從txt文件中讀取的,Observable的使用是強制性的(分配要求)。 – Mythul
感謝您的建議,但不幸的是,數據是從txt文件中讀取的,使用Observable是強制性的(分配要求)。我只是不知道如何實現StudentWindow的「更新」,以便祕書爲該學生添加新的結果時,結果自動出現在該StudentWindow上,而無需按下RefreshButton。或者需要某種刷新輸入?該應用程序有兩個主線,其中一個在其他StudentWindow上擁有SecretaryWindow,而不是txt數據文件,它們是唯一共同的東西?謝謝您的幫助。 – Mythul