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("你好")
}
/**
* 抽象图片
* 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("你好")
}