scala实现设计模式之外观模式

来源:互联网 发布:口袋妖怪淘宝买精灵 编辑:程序博客网 时间:2024/04/28 00:23
package com.linewell.modeldesgin.patternimport java.io.{FileNotFoundException, IOException}import scala.io.Source/** * 读文件,子系统类 * Created by ctao on 2015/8/28. */class FileReader {    def read(fileNameSrc: String): String = {        println("读取文件,获取明文:")        /**         * 读入文件         */        var target = ""        try {            for(s<- Source.fromFile(fileNameSrc)){                target += s.toString            }        } catch {            case io: IOException => io.printStackTrace()            case noFile: FileNotFoundException => noFile.printStackTrace()        }        target    }}
package com.linewell.modeldesgin.pattern/** * 加密文件,子系统类 * Created by ctao on 2015/8/28. */class CipherMachine {    def encrypt(plainText: String): String = {        println("数据加密,将明文转化为密文:")        var es = ""        for (i <- 0 until plainText.length) {            es += String.valueOf(plainText.charAt(i) % 7)        }        print(es)        es    }}
package com.linewell.modeldesgin.patternimport java.io.{FileNotFoundException, IOException, PrintWriter}/** * 写文件,子系统类 * Created by ctao on 2015/8/28. */class FileWriter {    def write(encryptStr: String, fileNameDes: String): Unit = {        print("保存密文,写入文件:")        try {            val out = new PrintWriter(fileNameDes)            out.print(encryptStr)            out.close()        } catch {            case io: IOException => io.printStackTrace()            case noFile: FileNotFoundException => noFile.printStackTrace()            case _ => println("其他异常")        }    }}
package com.linewell.modeldesgin.pattern/** *加密外观类 * Created by ctao on 2015/8/28. */class EncryptFacade {    private val fileReader = new FileReader    private val cipherMachine = new CipherMachine    private val fileWriter = new FileWriter    def fileEncrypt(fileNameSrc: String, fileNameDes: String): Unit = {        fileWriter.write(cipherMachine.encrypt(fileReader.read(fileNameSrc)), fileNameDes)    }}
package com.linewell.modeldesgin.pattern/** * 测试客户端 * Created by ctao on 2015/8/28. */object Client extends App {    val encryptFacade = new EncryptFacade    encryptFacade.fileEncrypt("hello", "des")}
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 水泥制品厂怎么办环评 深色木地板显脏怎么办 地板深了怎么办啊? 墙漆掉在家具上怎么办 皮质鞋子染色了怎么办 腹部抽脂后左右不对称怎么办 文化自信我们该怎么办 法庭把案子拖着怎么办 高中分班考差了怎么办 探索者软件打不开了怎么办 蔗阳伞没有底座怎么办 大伞没有底座怎么办 母乳过敏的湿疹怎么办 孩子对母乳过敏怎么办 cad图分解不了怎么办 衣柜宽出墙体怎么办 楼层大门锁住了怎么办 黄牛流口水烂嘴巴怎么办 长的小气不成熟怎么办 如果卵泡长不成熟怎么办 入了居民医保怎么办 电视没有频道了怎么办 tcl无频道请搜台怎么办 二胡声音太嘶哑怎么办 冰箱冷冻室结冰打不开怎么办 冰箱冷冻抽屉打不开怎么办 冰箱冷冻不结冰怎么办 冰箱冷冻室不冻怎么办 面包发过了怎么办 三星s7edge漏液怎么办 冷冻去痣起水泡怎么办 即食海参太硬怎么办 猴子冷冻后起泡怎么办 皮肤冷冻后起泡怎么办 冷冻后没起泡怎么办 氮气冷冻后起泡怎么办 冷冻起泡破了怎么办 脚底冷冻起泡了怎么办 冷冻猴子起泡了怎么办 液氮冷冻后水泡怎么办 冷冻后不起水泡怎么办