Kotlin和Java建造者模式怎么实现
发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,本篇内容主要讲解"Kotlin和Java建造者模式怎么实现",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Kotlin和Java建造者模式怎么实现"吧!指挥
千家信息网最后更新 2024年11月22日Kotlin和Java建造者模式怎么实现
本篇内容主要讲解"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 { //电脑组件的集合 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建造者模式怎么实现"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
电脑
产品
人员
方法
模式
指挥
子类
客户
组件
部件
需求
不同
主板
元件
内容
指挥者
电脑组装
硬盘
组装电脑
老板
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器电源怎样手启动
app软件开发维护人员工资
企业软件开发有前途吗
服务器上有个像太阳的指示灯含义
阿里巴巴网络安全部门
广东移动网络安全主管陈桂文
正规网络安全建设方案技术原理
成都才商之道网络技术
服务器安全组设置案例
服务器安装iis组件的总结
软件开发和设计区别
只从数据库中取出一条数据
铁路网络安全工作汇报
六扇门网络技术有限公司
软件开发思想与方法
hp服务器配置管理网
华为网络安全指南
巨杉数据库未来前景知乎
关于会员网络技术有限公司
网络安全人才培养内容
东莞汽车软件开发
当前主流的数据库都有哪些
h1zi服务器
丽水网络安全教育平台作业
易县网络安全宣传视频
幼儿园网络安全主题绘画
内存数据库管理系统
亚马逊高级软件开发工程师
vb软件开发工程师简历
600元左右的双路服务器