跟我一起学“仓颉”设计模式-外观模式练习题
本章为大家详细的介绍了仓颉设计模式中外观模式练习题的内容。
·
目录
一、练习题
1. 使用外观模式设计一个模块,该模块可以读取不同类型的文件中的数据,并将该数据转换成XML格式,然后将该数据展现出来。
类图

核心代码
package DesignPattern.facade
// 抽象外观类
public abstract class AbstractChange {
public func change2XML(fileSrc: String, fileDesc: String): Unit
}
// 外观类
public class Change <: AbstractChange {
private let fileReader: FileReader
private let changeXML: ChangeXML
private let fileWriter: FileWriter
public init() {
this.fileReader = FileReader()
this.changeXML = ChangeXML()
this.fileWriter = FileWriter()
}
public override func change2XML(fileSrc: String, fileDesc: String) {
let read = this.fileReader.read(fileSrc)
let xml = this.changeXML.getXML(read)
this.fileWriter.writer(xml, fileDesc)
}
}
// 子系统
private class FileReader {
public func read(fileSrc: String): String {
println("从${fileSrc}读取数据...")
return """
{
"msg": "success",
"code": 200,
"data": "{
"userName": "钝子生",
"age": 12,
"sex": 1
}"
}
"""
}
}
private class ChangeXML {
public func getXML(data: String): String {
println("原数据\n${data}")
println("数据格式转换中...")
println("转换完成")
return """
<response>
<msg>success</msg>
<code>200</code>
<data>
<userName>钝子生</userName>
<age>12</age>
<sex>1</sex>
</data>
</response>
"""
}
}
private class FileWriter {
public func writer(data: String, fileDesc: String) {
println("把\n${data}\n数据保存文件到${fileDesc}")
}
}
测试代码
package DesignPattern
import DesignPattern.facade.*
main(): Int64 {
let xml = Change()
xml.change2XML("./src/demo.json", "./src/demo_xml.xml")
return 0
}
二、小结
本章为大家详细的介绍了仓颉设计模式中外观模式练习题的内容,下一章,为大家带来享元模式的内容。最后,创作不易,如果大家觉得我的文章对学习仓颉设计模式有帮助的话,就动动小手,点个免费的赞吧!收到的赞越多,我的创作动力也会越大哦,谢谢大家🌹🌹🌹!!!
更多推荐
所有评论(0)