1. Clases relacionadas con el estado
package com. study. state
class Activity {
companion object {
val onCreateState = OnCreateState ( )
val onStartState = OnStartState ( )
val onResumeState = OnResumeState ( )
}
var activityState: ActivityState =
OnCreateState ( )
set ( value) {
field = value
activityState. activity = this
}
fun onCreate ( ) {
activityState? . onCreate ( )
}
fun onStart ( ) {
activityState? . onStart ( )
}
fun onResume ( ) {
activityState? . onResume ( )
}
}
package com. study. state
abstract class ActivityState {
var activity: Activity? = null
abstract fun onCreate ( )
abstract fun onStart ( )
abstract fun onResume ( )
}
package com. study. state
class OnCreateState : ActivityState ( ) {
override fun onCreate ( ) {
println ( "当前Activity状态onCreate" )
}
override fun onStart ( ) {
activity? . activityState = Activity. onStartState
}
override fun onResume ( ) {
activity? . activityState = Activity. onResumeState
}
}
package com. study. state
class OnResumeState: ActivityState ( ) {
override fun onCreate ( ) {
activity? . activityState = Activity. onCreateState
}
override fun onStart ( ) {
activity? . activityState = Activity. onStartState
}
override fun onResume ( ) {
println ( "当前Activity状态onResume" )
}
}
package com. study. state
class OnStartState: ActivityState ( ) {
override fun onCreate ( ) {
activity? . activityState = Activity. onCreateState
}
override fun onStart ( ) {
println ( "当前Activity状态onStart" )
}
override fun onResume ( ) {
activity? . activityState = Activity. onResumeState
}
}
En segundo lugar, la llamada del programa principal
package com. study. state
fun main ( ) {
val activity = Activity ( )
activity. activityState = OnCreateState ( )
println ( "当前状态:" + activity. activityState? . javaClass? . simpleName)
activity. onStart ( ) ;
println ( "当前状态:" + activity. activityState? . javaClass? . simpleName)
activity. onResume ( )
println ( "当前状态:" + activity. activityState? . javaClass? . simpleName)
}
Tres, resultados en ejecución
Cuatro, resumen de aprendizaje de patrones de diseño
Después de persistir en aprender un patrón de diseño sensible al tiempo, tengo una comprensión más profunda de los patrones de diseño. Muchas gracias por proporcionar recursos de aprendizaje.