[譯]PureMVC QA:Where Should I Declare Notification Name Constants?mvc
Q:我想知道在哪聲明通知(Notification)名稱的常量,在代理(Proxies)或ApplicationFacade文件中?spa
還有,若是我把全部的通知常量聲明在ApplicationFacade中,這樣這個文件就會很大,我想過把聲明放在一個獨立的文件中,這樣能夠嗎,或還有其餘地方能夠聲明常量嗎?代理
A:rem
把通知常量聲明在具體的Façade(通常爲ApplicationFacade)中對須要訪問通知常量的類來講不失爲一個好地方,尤爲對於Command和Notification映射而言,放在ApplicationFacade中是一個合理的地方。固然,若是有太多的常量,放在一個單獨的ApplicationConstants文件中也是能夠的。可是須要把這個文件放在與ApplicationFacade的同一級目錄,這樣,看成爲一個庫的時候就特別方便了。get
對於給定的應用,視圖層和控制層一塊兒完成特定的用戶用例或功能,但Mediators(視圖層)和Commands(控制層)相互引用對方的常量這必定不是你想要的,不然,他們與在同一層次就沒有區別了。因此,把常量發在ApplicationFacade或ApplicationConstants中就是一個比較天然的地方,讓視圖曾和控制層之間沒有造成依賴關係。io
因爲應用特定的視圖層和控制層老是容許你與特定的模型交互,在模型層(Proxies或ModelConstants)定義通知常量供Commands(控制層)和Mediators(視圖層)訪問是一個好辦法,他容許與Proxies直接交互。引用
不管怎樣,模型應該是最爲獨立的一層,以即可以總體移到其餘應用中,被不一樣的視圖或控制層使用。margin
所以,模型層(Proxies)不該該引用特定的視圖或控制器中的常量,好比ApplicationFacade或ApplicationConstants。top
你應該在模型中定義它本身發出的通知常量,這樣,模型層就是一個可移植的。這也是爲何Proxies不接收通知的緣由,你想,假如模型試圖監聽在應用其餘地方定義的通知,這樣模型就依賴於視圖或控制層了。di