python mvc模式_MVC 模式

使用 Kotlin 实现 MVC:利用 kotlin 的数据类实现 modal 层,使用标准库函数使结构更加直观。

/**

* 数据类Modal

*/

data class Student(private var name: String, private var age: Int) {

fun getName(): String = this.name

fun setName(newName: String) = { name = newName }()

fun getAge(): Int = this.age

fun setAge(newAge: Int) = { age = newAge }()

}

/**

* 视图层 View

*/

class View {

fun showView(name: String, age: Int) = println("name:$name,age:$age")

}

/**

* 控制器 Controller

*/

class Controller(private var view: View, private var modal: Student) {

fun setName(newName: String) = modal.setName(newName)

fun setAge(newAge: Int) = modal.setAge(newAge)

fun getName(): String = modal.getName()

fun getAge(): Int = modal.getAge()

fun updateView() {

println("更新视图:------------")

view.showView(modal.getName(), modal.getAge())

}

}

/**

* kotlin MVC模式

* @author IWH

* android默认的开发模式就是MVC,activity属于控制器负责XML与Modal的处理

*/

fun main() {

val view = View()

val modal = Student("iwh", 20)

val controller = Controller(view, modal)

view.showView(controller.getName(), controller.getAge())

controller.setAge(21)

controller.setName("jack")

controller.updateView()

main2()

}

/**

* 使用kotlin特性

*/

fun main2() {

View().apply outer@{

Student("iwh", 20).apply inner@{

with(Controller(this@outer, this@inner)) last@{

this@outer.showView(this.getName(), this.getAge())

setName("jack")

setAge(21)

updateView()

}

}

}

}

iwh冬

iwh冬

630***826@qq.com2年前 (2019-04-11)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值