美文网首页
Android Kotlin 设计模式之建造者模式

Android Kotlin 设计模式之建造者模式

作者: 水天滑稽天照八野滑稽石 | 来源:发表于2020-01-14 10:44 被阅读0次

    前言

    补下坑,因为之前简书整改和一些其他原因就断更了,这次就来聊聊建造者

    工厂模式与建造者模式的差别

    因为这2个还是挺相似的,都是生成一个我们想要的东西,所以还是得说清楚的:
    工厂模式:直接生成一个可用的产品

    // 如bitmapFactory
    val bitmap = BitmapFactory.decodeFile(filePath)b
    

    建造者模式:配置相关参数生成一个我们想要的产品

    //如AlertDialog
     val builder = AlertDialog.Builder(this)
     val dialog = builder.setTitle(xxxx)
                .setIcon(xxxx)
                .setIcon(XXX)
                .setXXX(xxx)
                .create()
                .show()
    

    正文

    对于建造者模式来说,写法上主要表现就是链式反应的写法
    这儿我们同样以生成一个实体类为例(一个学生)

    class Student{
            private var name = ""
            private var age = 0
    
            fun setName(name: String): Student {
                this.name = name
                return this
            }
    
            //链式反应就是return this 就好了
            fun setAge(age: Int): Student {
                this.age = age
                return this
            }
        }
    
    //使用
     val student = Student()
                .setAge(11)
                .setName("XXX")
    //当然也可以这样写
    class Student private constructor(){
    
        private lateinit var name: String
        private var age by Delegates.notNull<Int>()
        
        companion object {
            fun builder(): Builder {
                return Builder()
            }
        }
    
        class Builder{
    
            private val student = Student()
    
            fun setName(name: String): Builder {
                student.name = name
                return this
            }
    
            fun setAge(age: Int): Builder {
                student.age = age
                return this
            }
    
            fun build(): Student {
                return student
            }
        }
    
    }
    // 使用
      val student = Student
                    .builder()
                    .setAge(10)
                    .setName("xiao")
                    .build()
    

    总结

    反正对于建造者模式来说,核心的写法就是同过链式反应配置不同的参数生成我们想要的东西

    相关文章

      网友评论

          本文标题:Android Kotlin 设计模式之建造者模式

          本文链接:https://www.haomeiwen.com/subject/uibtnqtx.html