本篇内容主要讲解“Kotlin和Java建造者模式怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Kotlin和Java建造者模式怎么实现”吧!
指挥者(Director)直接和客户(Client)进行需求沟通;
沟通后指挥者将客户创建产品的需求划分为各个部件的建造请求(Builder);
将各个部件的建造请求委派到具体的建造者(ConcreteBuilder);
各个具体建造者负责进行产品部件的构建;
最终构建成具体产品(Product)。
建造模式很简单,一组装电脑为例,由于电脑元件一般不会发生太大的改变,但电脑组装是一个复杂的过程。
UML图:
1.创建建造请求
abstract class Builder { //第一步:装CPU //声明为抽象方法,具体由子类实现 abstract fun buildCPU() //第二步:装主板 //声明为抽象方法,具体由子类实现 abstract fun buildMainboard() //第三步:装硬盘 //声明为抽象方法,具体由子类实现 abstract fun buildHD() //返回产品的方法:获得组装好的电脑 abstract fun getComputer(): Computer }
2.将建造请求委派到建造者进行实现
class ConcreteBuilder : Builder() { //创建产品实例 private var computer = Computer() //组装产品 override fun buildCPU() { computer.add("组装CPU") } override fun buildMainboard() { computer.add("组装主板") } override fun buildHD() { computer.add("组装硬盘") } //返回组装成功的电脑 override fun getComputer(): Computer { return computer } }
3.指挥组装元件
class Director { //指挥装机人员组装电脑 fun construct(builder: Builder) { builder.buildCPU() builder.buildMainboard() builder.buildHD() } }
4.定义具体产品类(Product):电脑
class Computer { //电脑组件的集合 private val parts = ArrayList<String>() //用于将组件组装到电脑里 fun add(part: String) { parts.add(part) } fun show() { for (i in parts.indices) { println("组件" + parts[i] + "装好了") } println("电脑组装完成,请验收") } }
客户端调用
object BuilderTest { @JvmStatic fun main(args: Array<String>) { //逛了很久终于发现一家合适的电脑店 //找到该店的老板和装机人员 val director = Director() val builder = ConcreteBuilder() //沟通需求后,老板叫装机人员去装电脑 director.construct(builder) //装完后,组装人员搬来组装好的电脑 val computer = builder.getComputer() //组装人员展示电脑给小成看 computer.show() } }
结果输出
每一个具体建造者都相对独立,而与其他的具体建造者无关,因此可以很方便地替换具体建造者或增加新的具体建造者,用户使用不同的具体建造者即可得到不同的产品对象。
到此,相信大家对“Kotlin和Java建造者模式怎么实现”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。