[英]Where should I put these fields in the MVC model?
假設我有三個類: JPSModel
, JPSView extends JPanel
和JPSController
。 JPSView
覆蓋paintComponent()
,后者在某個zoomFactor
位置(renderPositionX, renderPositionY)
處繪制圖像。
用戶可以更改的zoomFactor
, renderPositionX
和renderPositionY
是否應位於JPSView
或JPSModel
? 像setZoomFit()
這樣的方法來計算zoomFactor
, renderPositionX
和renderPositionY
方法如何?
它們都應該在JPSView
因為它們與要顯示的“什么”(數據)無關。 它們都與要顯示數據的“位置”(位置)和“方式”(縮放比例)有關。
記住Model
是持久的,除非它是ViewModel
,否則您永遠不會將視圖信息與之一起保存。 舉個例子,大多數PDF閱讀器為您提供了一個選項,可以在與上次關閉時完全相同的頁面(以及相同的縮放倍數)處重新打開PDF文件。 但是,這並不意味着它將頁數和縮放系數保存在PDF本身中。
為了適應這種情況,如果您想保留與“上次查看為”相關的視圖信息,則應創建一個單獨的JPSViewModel
,理想情況下,應將其保留在應用程序本地數據庫中,而不要與正在處理的文件一起保留。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.