我是在一個視圖控制器工作,當我完成它,我曾在onViewDidLoad以下(我簡化了代碼/變量,但這個想法是一樣的):在哪裏執行視圖控制器「業務邏輯」?
//Show Fields
txtField1.hidden = _settings.showField1 == true
txtField2.hidden = _settings.userNeedsField2 == true
//Display some other text about weather
if (_myWeatherService.TheMoonIsFull && _settings.userNeedsField3)
{
lblField3.text = "Some text about something"
}
else {
txtField3.hidden = true
}
//Handle Time Stuff
if (_settings.UserPreferenceTimeOfDay == true) {
if ((current24ClockHourInTheDay >= 5 && current24ClockHourInTheDay <= 18))
{
txtField4.hidden = true
txtField5.text = "DAY"
}
else {
txtField4.hidden = true
txtField5.text = "NIGHT"
}
else {
txtField4.hidden = false
txtField5.text = ""
}
,這樣下去對另一20行左右。
基本上我覺得好像有東西可能是最好的視圖控制器(演示相關的決定),但它的一些我在其他視圖控制器重用留下的混合物。還有一些基於用戶對一天中的時間和一天中的幾小時的偏好的邏輯使我對它應該在的位置感到困惑(應該某些服務處理這些決定,所以我可以重用這個代碼)?
謝謝!
我建議看看[MVP](https://開頭恩.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93prepreter)和/或[VIPER](https://www.objc.io/issues/13-architecture/viper/)架構模式。 – werediver 2016-04-21 10:08:29