设计模式-外观模式(Kotlin)

定义:外观模式是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式,该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体细节,这样会大大降低应用程序的复杂程度,提高了程序的可维护性。

外观模式是“迪米特法则”的典型应用

例子:外观模式在现实生活中有很多例子,就例如最近很火的小米智能家电一样,我们作为客户,小米只能语音作为一个子系统类的一个入口,我们想做什么只需要和小米只能语音说就行了

class Light{
    fun on(){
        println("打开了灯....")
    }

    fun off(){
        println("关闭了灯")
    }
}

class TV{
    fun on(){
        println("打开了电视...")
    }

    fun off(){
        println("关闭了电视...")
    }
}

class AirCondition{
    fun on(){
        println("打开了空调...")
    }

    fun off(){
        println("关闭了空调...")
    }
}

class SmartAppliancesFacade{
    private val light: Light = Light()
    private val tv: TV = TV()
    private val airCondition: AirCondition = AirCondition()

    fun say(message: String){
        if (message.contains("打开"))
            on()
        else if (message.contains("关闭"))
            off()
        else
            println("听不懂")
    }

    private fun on(){
        println("起床了")
        light.on()
        tv.on()
        airCondition.on()
    }

    private fun off(){
        println("睡觉了")
        light.off()
        tv.off()
        airCondition.off()
    }
}

fun main(){
    val facade = SmartAppliancesFacade()
    facade.say("打开家电")
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值