您好,登錄后才能下訂單哦!
本篇內容主要講解“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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。