Middle
Miks on vaja rakenduses eraldada kuvamine ja äriloogika?
sobes.tech AI
Vastus AI-lt
Jagunemine vaate ja äriloogika vahel parandab:
- Testitavust: Äriloogikat saab testida sõltumatult kasutajaliidesest.
- Hooldatavust: Muudatused kasutajaliideses ei mõjuta äriloogikat ja vastupidi. Lihtsustab refaktoreerimist.
- Skaleeritavust: Erinevad rakenduse osad saavad arendada paralleelselt.
- Taaskasutatavust: Äriloogikat saab kasutada erinevate vaadete puhul (näiteks mobiilirakenduses ja veebiversioonis).
- Paindlikkust: On lihtsam muuta kasutajaliidese raamistikke või ärireegleid.
Tüüpilised arhitektuurimustrid, mis teostavad seda jagunemist:
- MVC (Model-View-Controller)
- MVP (Model-View-Presenter)
- MVVM (Model-View-ViewModel)
Android arenduses kasutatakse sageli MVVM-i koos Architecture Components'iga (ViewModel, LiveData).
Näide jagunemisest:
// Fragment (Vaade) - vastutab kuvamise eest
class UserProfileFragment : Fragment() {
private val viewModel: UserProfileViewModel by viewModels()
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
viewModel.userName.observe(viewLifecycleOwner) { name ->
userNameTextView.text = name
}
loadUserButton.setOnClickListener {
viewModel.loadUserData()
}
}
}
// ViewModel (Äriloogika ja seisund) - haldab andmeid
class UserProfileViewModel : ViewModel() {
private val _userName = MutableLiveData<String>()
val userName: LiveData<String> = _userName
fun loadUserData() {
// Siin toimub äriloogika: API päring, andmete töötlemine
// ... andmete laadimise simulatsioon
_userName.value = "Jaan Tamm"
}
}