您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“Kotlin和Java建造者模式怎么實(shí)現(xiàn)”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Kotlin和Java建造者模式怎么實(shí)現(xiàn)”吧!
指揮者(Director)直接和客戶(hù)(Client)進(jìn)行需求溝通;
溝通后指揮者將客戶(hù)創(chuàng)建產(chǎn)品的需求劃分為各個(gè)部件的建造請(qǐng)求(Builder);
將各個(gè)部件的建造請(qǐng)求委派到具體的建造者(ConcreteBuilder);
各個(gè)具體建造者負(fù)責(zé)進(jìn)行產(chǎn)品部件的構(gòu)建;
最終構(gòu)建成具體產(chǎn)品(Product)。
建造模式很簡(jiǎn)單,一組裝電腦為例,由于電腦元件一般不會(huì)發(fā)生太大的改變,但電腦組裝是一個(gè)復(fù)雜的過(guò)程。
UML圖:
1.創(chuàng)建建造請(qǐng)求
abstract class Builder { //第一步:裝CPU //聲明為抽象方法,具體由子類(lèi)實(shí)現(xiàn) abstract fun buildCPU() //第二步:裝主板 //聲明為抽象方法,具體由子類(lèi)實(shí)現(xiàn) abstract fun buildMainboard() //第三步:裝硬盤(pán) //聲明為抽象方法,具體由子類(lèi)實(shí)現(xiàn) abstract fun buildHD() //返回產(chǎn)品的方法:獲得組裝好的電腦 abstract fun getComputer(): Computer }
2.將建造請(qǐng)求委派到建造者進(jìn)行實(shí)現(xiàn)
class ConcreteBuilder : Builder() { //創(chuàng)建產(chǎn)品實(shí)例 private var computer = Computer() //組裝產(chǎn)品 override fun buildCPU() { computer.add("組裝CPU") } override fun buildMainboard() { computer.add("組裝主板") } override fun buildHD() { computer.add("組裝硬盤(pán)") } //返回組裝成功的電腦 override fun getComputer(): Computer { return computer } }
3.指揮組裝元件
class Director { //指揮裝機(jī)人員組裝電腦 fun construct(builder: Builder) { builder.buildCPU() builder.buildMainboard() builder.buildHD() } }
4.定義具體產(chǎn)品類(lèi)(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("電腦組裝完成,請(qǐng)驗(yàn)收") } }
客戶(hù)端調(diào)用
object BuilderTest { @JvmStatic fun main(args: Array<String>) { //逛了很久終于發(fā)現(xiàn)一家合適的電腦店 //找到該店的老板和裝機(jī)人員 val director = Director() val builder = ConcreteBuilder() //溝通需求后,老板叫裝機(jī)人員去裝電腦 director.construct(builder) //裝完后,組裝人員搬來(lái)組裝好的電腦 val computer = builder.getComputer() //組裝人員展示電腦給小成看 computer.show() } }
結(jié)果輸出
每一個(gè)具體建造者都相對(duì)獨(dú)立,而與其他的具體建造者無(wú)關(guān),因此可以很方便地替換具體建造者或增加新的具體建造者,用戶(hù)使用不同的具體建造者即可得到不同的產(chǎn)品對(duì)象。
到此,相信大家對(duì)“Kotlin和Java建造者模式怎么實(shí)現(xiàn)”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。