kotlin装饰者模式

/**
*装饰者模式
*/
abstract class Room {

abstract fun fitment()

}

class NewRoom : Room() {

override fun fitment() {

println("这是一间新房:装上电")

}

}


abstract class RoomDecorator(room: Room) : Room() {

private val mRoom = room

override fun fitment() {

mRoom.fitment()

}

}

class Bedroom(room: Room) : RoomDecorator(room) {

override fun fitment() {

super.fitment()

addBedding()

}

private fun addBedding() {

println("装修成卧室:添加卧具")

}

}

class Kitchen(room: Room) : RoomDecorator(room) {

override fun fitment() {

super.fitment()

addKitchenware()

}

private fun addKitchenware() {

println("装修成厨房:添加厨具")

}

}

fun main(args: Array) {

val newRoom: Room = NewRoom();//有一间新房间

    val bedroom: RoomDecorator = Bedroom(newRoom);

bedroom.fitment();//装修成卧室

    val kitchen: RoomDecorator = Kitchen(newRoom);

kitchen.fitment();//装修成厨房

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 作者已经搬迁去隔壁网站,也欢迎大家关注我们的写作团队:天星技术团队。 闲聊 最近一直不在状态,月初就被博客质量的事...
    点先生在这阅读 4,114评论 0 1
  • 1. 装饰者模式 举个栗子,假如在一家饮料店中有两种饮料,分别是奶茶和咖啡,相对的有三种调料,蜂蜜、块糖和摩卡,这...
    静水流深ylyang阅读 3,211评论 0 2
  • 定义:装饰者模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。他是通过创建一个包装对象,也...
    zhanghanga阅读 3,188评论 0 1
  • 人的健康最重要是心理健康。忧虑,算计,苦闷,惊恐,担心,牵挂,偏爱,怨恨,仇视,贪婪。。。。都是心理不健康的范畴。...
    雁阁秋容阅读 2,241评论 0 6
  • 微醺 刚刚好 不多也不少 三五好友齐聚 聊天小酌几口 孩子在客厅奔跑 烧几个豆腐 天南地北的聊 陪伴是最长情的友谊...
    薄翼蝉莎阅读 1,810评论 0 3

友情链接更多精彩内容