在Android項目中,Activity和Fragment占據了大部分的開發工作。如果有壹種設計模式(或者說代碼結構)專門是為優化Activity和Fragment的代碼而產生的,妳說這種模式重要不?這就是MVP設計模式。
按照MVC的分層,Activity和Fragment(後面只說Activity)應該屬於View層,用於展示UI界面,以及接收用戶的輸入,此外還要承擔壹些生命周期的工作。Activity是在Android開發中充當非常重要的角色,特別是TA的生命周期的功能,所以開發的時候我們經常把壹些業務邏輯直接寫在Activity裏面,這非常直觀方便,代價就是Activity會越來越臃腫,超過1000行代碼是常有的事,而且如果是壹些可以通用的業務邏輯(比如用戶登錄),寫在具體的Activity裏就意味著這個邏輯不能復用了。如果有進行代碼重構經驗的人,看到1000+行的類肯定會有所顧慮。因此,Activity不僅承擔了View的角色,還承擔了壹部分的Controller角色,這樣壹來V和C就耦合在壹起了,雖然這樣寫方便,但是如果業務調整的話,要維護起來就難了,而且在壹個臃腫的Activity類查找業務邏輯的代碼也會非常蛋疼,所以看起來有必要在Activity中,把View和Controller抽離開來,而這就是MVP模式的工作了。