Builder模式 【Java设计模式】
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Builder模式 【Java设计模式】,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1841字,纯文字阅读大概需要3分钟。
内容图文
Builder模式
android
构建者(Builder)模式(又叫生成器设计模式):
当一个类的内部数据过于复杂的时候(通常是负责持有数据的类,比如VO、PO、Entity...),要创建的话可能就需要了解这个类的内部结构,还有这些东西是怎么组织装配等一大坨乱七八糟的东西,这个时候就会增加学习成本而且会很混乱,这个时候就想啊想一种什么法子来管理一下这个类中的数据呢,怎么在创建的时候让它按部就班的来,并且代码可读性很好别让我看花了眼啊,我要的东西也能都很好设置进来,这就是Builder模式的应用场景,Builder模式可以将一个类的构建和表示进行分离。
看例子:
class Person {
private var name: String? = null
private var age: String? = null
private var height: String? = null
private var weight: String? = null
private var sex: String? = null
constructor(person: Person){
this.name=person.name
this.age=person.age
this.height=person.height
this.weight=person.weight
this.sex=person.sex
}
private constructor()
class Builder {
private val person: Person = Person()
fun name(name: String): Builder {
person.name = name
return this
}
fun age(age: String): Builder {
person.age = age
return this
}
fun height(height: String): Builder {
person.height = height
return this
}
fun weight(weight: String): Builder {
person.weight = weight
return this
}
fun sex(sex: String): Builder {
person.sex = sex
return this
}
fun build(): Person {
return Person(person)
}
}
override fun toString(): String {
return "Person(name=$name, age=$age, height=$height, weight=$weight, sex=$sex)"
}
}
调用以及运行结果:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val build = Person.Builder()
.age("16")
.height("199")
.name("ODP")
.weight("180")
.sex("男")
.build()
Log.e("odp", "p1:$build")
}
}
注意:
我们的Person类里面的无参数构造器是被private修饰,也就是说让用户调用的时候只能通过我们想要的方式(Builder去点每一个属性)去调用。
内容总结
以上是互联网集市为您收集整理的Builder模式 【Java设计模式】全部内容,希望文章能够帮你解决Builder模式 【Java设计模式】所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。