scala实现桥接模式

package com.linewell.modeldesgin.bridge

/**
* 抽象图片
* Created by ctao on 2015/8/9.
*/
abstract class Image {
//图片实现方式
var imageImp : ImageImp
//文件设置
def parseFile(fileName:String)
}

/**
* 具体jpg图片
*/
class JPGImage extends Image{
override var imageImp: ImageImp = _

override def parseFile(fileName: String) = {
imageImp.doPaint(new Matrix)
println(fileName+",格式为JPG")
}
}


/**
* 具体png图片
*/
class PNGImage extends Image{
override var imageImp: ImageImp = _

override def parseFile(fileName: String) = {
imageImp.doPaint(new Matrix)
println(fileName+",格式为PNG")
}
}


/**
* 具体gif图片
*/
class GIFImage extends Image{
override var imageImp: ImageImp = _

override def parseFile(fileName: String) = {
imageImp.doPaint(new Matrix)
println(fileName+",格式为GIF")
}
}

/**
* 像素矩阵
*/
class Matrix

/**
* 图片展示特质
*/
trait ImageImp {
def doPaint(m: Matrix)
}

/**
* win具体展示
*/
class WindowsImp extends ImageImp {
override def doPaint(m: Matrix) = println("在windows操作系统中显示图片:")
}

/**
* linux具体展示
*/
class LinuxImp extends ImageImp {
override def doPaint(m: Matrix) = println("在linux操作系统中显示图片")
}


/**
* mac具体展示
*/
class MaxOsImp extends ImageImp {
override def doPaint(m: Matrix) = println("在Mac操作系统中显示图片")
}
package com.linewell.modeldesgin.bridge

/**
* 测试客户端
* Created by ctao on 2015/8/15.
*/
object Client extends App {
/**
* 图片
*/
val image: Image = new JPGImage
/**
* 图片展示
*/
val imageImp: ImageImp = new WindowsImp
image.imageImp = imageImp

/**
* 设置文件
*/
image.parseFile("你好")
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值