当前位置: 首页 > news >正文

跟我一起学“仓颉”设计模式-原型模式练习题

一、练习题

1. 为销售管理系统里的客户类(Customer)实现克隆方法,该类里面包含了客户姓名和客户的地址(Address),分别用浅克隆和深克隆实现,并解释浅克隆和深克隆的区别。

类图

核心代码

package DesignPattern.prototype // 抽象原型 public abstract class Property { public func clone(): Property } public class Address { public var name: String public init (name: String) { this.name = name } } // 具体原型 public class Customer <: Property { public Customer(public var name: String, public var address: Address){} public func getInfo() { println("姓名: ${name}, 地址: ${address.name}") } public override func clone() { return Customer(name, address) } }

测试代码

package DesignPattern import DesignPattern.prototype.* main(): Int64 { let customer1 = Customer("小余", Address("翻斗花园")) customer1.getInfo() // 浅克隆 println("\n浅克隆") let customer2 = customer1 customer2.name = "小李" customer2.address = Address("水帘洞") customer1.getInfo() customer2.getInfo() // 深克隆 println("\n深克隆") let customer3 = customer1.clone() customer3.name = "小刘" customer3.address = Address("汤臣一品") customer1.getInfo() customer2.getInfo() customer3.getInfo() return 0 }

区别:浅克隆只会复制值类型数据,引用类型不会复制,深克隆无论是值类型还是引用类型,都会复制一份给克隆对象。

二、小结

本章为大家详细的介绍了仓颉设计模式中原型模式练习题的内容,下一章,为大家带来适配器模式的内容。最后,创作不易,如果大家觉得我的文章对学习仓颉设计模式有帮助的话,就动动小手,点个免费的赞吧!收到的赞越多,我的创作动力也会越大哦,谢谢大家🌹🌹🌹!!!

http://www.gsyq.cn/news/1490819.html

相关文章:

  • 2026河北混合型塑胶跑道专业服务商排行及能力解析:河北预制型塑胶跑道/硅pu学校篮球场/硅pu排球场/硅pu材料/选择指南 - 优质品牌商家
  • 别再让亚稳态坑你!FPGA跨时钟域(CDC)单bit信号处理的3个实战避坑指南
  • 2026年喷雾干燥机技术解析与靠谱品牌实测对比:旋转闪蒸烘干机/桨叶干燥机/气流烘干机/流化床干燥机/滚筒刮板烘干机/选择指南 - 优质品牌商家
  • OBS Studio:为什么这款免费开源软件成为专业直播的终极选择?
  • 中山黄金回收实测:6大门店横向对比(附地址与变现避坑指南) - 润富黄金回收
  • SeetaFaceEngine2 Android开发实战:移动端人脸识别应用开发指南
  • 批量读取本地CSV文件的7种工程化方案
  • 2026临沂漏水检测电话-消防/管道测漏/自来水管道漏水检测/电缆故障检测|本地靠谱商家口碑推荐 - 资讯热点
  • Java学习收藏夹吃灰?这份「按部就班」的学习路径,小白也能轻松掌握大模型核心技术!
  • 工业级多维聚合:pandas生产环境五大实战模式
  • Facebook级机器学习AB测试架构实战解析
  • 农药消泡剂实测评测:聚醚消泡剂/造纸消泡剂/金属加工消泡剂/食品消泡粉/农药消泡剂/发酵消泡剂/工业消泡剂/有机硅消泡剂/选择指南 - 优质品牌商家
  • 业务指标驱动的机器学习落地方法论
  • Ji解析库安装指南:CocoaPods、Carthage与SPM全方案
  • 中山黄金回收全攻略:6家实体门店横向评测(附详细地址与避坑指南) - 润富黄金回收
  • Obsidian主题和插件资源获取完整指南:5种极速下载方案
  • 3D高斯散射技术原理与应用实践
  • 2026年济南医疗纠纷律师实力对比 5家深度测评 - 本地品牌推荐
  • 3步掌握Umi-OCR:免费离线文字识别的终极效率工具
  • 如何快速获取网易云和QQ音乐歌词:5个实用技巧与完整指南
  • Linux系统下运行JoyShockMapper:设备权限配置与兼容性优化指南
  • 如何3步掌握Python通达信数据接口:面向量化投资的数据获取终极方案
  • 从发送报文到过滤接收:用USB-CAN分析仪调试车载ECU的实战笔记(附数据帧解析技巧)
  • 因果提示优化(CPO)在LLM中的应用与实现
  • Showdoc开源版私有化部署踩坑全记录:从Docker搭建到内网穿透访问
  • 2026年上海婚姻律师评测:上海离婚房产分割律师、上海离婚股权分割律师、上海离婚诉讼律师、上海离婚财产分割律师选择指南 - 优质品牌商家
  • C语言内存管理难题?chadstr.h的autofree与chadstr自动释放功能救星来了
  • 2026年酒店隔墙技术解析与可靠服务商甄选指南:商用加气块隔墙/厂房加气块隔墙/酒店包厢隔墙施工/酒店客房隔断墙/选择指南 - 优质品牌商家
  • MuleSoft驱动的企业级AI编排:打通LLM与核心业务系统
  • 2026年热门的贵州吸烟亭/垃圾分类亭/贵州移动卫生间实力工厂推荐 - 品牌宣传支持者