千家信息网

Kotlin和Java建造者模式怎么实现

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,本篇内容主要讲解"Kotlin和Java建造者模式怎么实现",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Kotlin和Java建造者模式怎么实现"吧!指挥
千家信息网最后更新 2024年11月22日Kotlin和Java建造者模式怎么实现

本篇内容主要讲解"Kotlin和Java建造者模式怎么实现",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Kotlin和Java建造者模式怎么实现"吧!



  1. 指挥者(Director)直接和客户(Client)进行需求沟通;

  2. 沟通后指挥者将客户创建产品的需求划分为各个部件的建造请求(Builder);

  3. 将各个部件的建造请求委派到具体的建造者(ConcreteBuilder);

  4. 各个具体建造者负责进行产品部件的构建;

  5. 最终构建成具体产品(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 {    //电脑组件的集合    privateval parts = ArrayList()    //用于将组件组装到电脑里    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) {        //逛了很久终于发现一家合适的电脑店        //找到该店的老板和装机人员        val director = Director()        val builder = ConcreteBuilder()        //沟通需求后,老板叫装机人员去装电脑        director.construct(builder)        //装完后,组装人员搬来组装好的电脑        val computer = builder.getComputer()        //组装人员展示电脑给小成看        computer.show()    }}

结果输出

每一个具体建造者都相对独立,而与其他的具体建造者无关,因此可以很方便地替换具体建造者或增加新的具体建造者,用户使用不同的具体建造者即可得到不同的产品对象。

到此,相信大家对"Kotlin和Java建造者模式怎么实现"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0