news 2026/6/9 5:12:01

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
跟我一起学“仓颉”设计模式-原型模式练习题

一、练习题

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 }

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

二、小结

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 5:05:23

【Springboot毕设全套源码+文档】基于Java的温泉旅游服务管理系统的设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/6/9 5:05:04

TileMapDual深度解析:如何将47个瓦片减少到15个的终极技巧

TileMapDual深度解析&#xff1a;如何将47个瓦片减少到15个的终极技巧 【免费下载链接】TileMapDual An automatic, real-time dual-grid tileset system for Godot 项目地址: https://gitcode.com/gh_mirrors/ti/TileMapDual TileMapDual是一款为Godot引擎设计的自动实…

作者头像 李华
网站建设 2026/6/9 5:04:00

Sqribble文档操作系统:非设计人员的自动化排版解决方案

1. 项目概述&#xff1a;当模板不再是“套壳”&#xff0c;而是一套可执行的文档操作系统你有没有过这种体验&#xff1a;手头有一篇写得不错的行业分析&#xff0c;想快速变成一份体面的PDF报告发给客户&#xff1b;或者刚录完一期播客&#xff0c;想把文字稿整理成带封面、目…

作者头像 李华
网站建设 2026/6/9 5:02:56

Python入门:Python3 threading模块全面学习教程

Python入门&#xff1a;Python3 threading模块全面学习教程 Python入门&#xff1a;Python3 threading模块全面学习教程&#xff0c;本文是 Python threading 模块的入门到实战指南&#xff0c;聚焦该模块解决单线程 I/O 阻塞、提升程序并发效率的核心作用。内容先介绍两种线程…

作者头像 李华
网站建设 2026/6/9 5:02:04

终极FOC平衡车固件:开源电机控制优化完整指南

终极FOC平衡车固件&#xff1a;开源电机控制优化完整指南 【免费下载链接】hoverboard-firmware-hack-FOC With Field Oriented Control (FOC) 项目地址: https://gitcode.com/GitHub_Trending/ho/hoverboard-firmware-hack-FOC hoverboard-firmware-hack-FOC项目实现了…

作者头像 李华