scala实现简单工厂

package com.linewell.modeldesgin.simplefactory

/**
* Created by ctao on 2015/8/6.
* 抽象产品类,抽象图表特质,具有展示方法
*/
abstract class Chart {
def display():Unit
}

/**
* 柱状图,继承抽象图
*/
class HistogramChart extends Chart{
println("初始化柱状图")

/**
* 展示方法
*/
override def display(): Unit = {
println("显示柱状图")
}
}

/**
* 饼状图,继承抽象图
*/
class PieChart extends Chart{
println("初始化饼状图")

/**
* 展示方法
*/
override def display(): Unit = {
println("显示饼状图")
}
}


/**
* 折线图,继承抽象图
*/
class LineChart extends Chart{
println("初始化折线图")

/**
* 展示方法
*/
override def display(): Unit = {
println("显示折线图")
}
}


/**
* 工厂方法,用于产出具体产品
*/
object Chart {
/**
* 通过模式匹配更加优雅实现
* @param style 产品类型
* @return 具体产品
*/
def apply(style:String) = style match {
case "histogram" => println("创建化柱状图");new HistogramChart
case "pie" => println("创建饼状图");new PieChart
case "line" =>println("创建折线图"); new LineChart
}
}


package com.linewell.modeldesgin.simplefactory

/**
* Created by ctao on 2015/8/6.
* 测试客户端
*/
object Client extends App{
//产出饼状图
val pie = Chart("pie")
pie.display()
//产出柱状图
val histogram = Chart("histogram")
histogram.display()
//产出折线图
val line = Chart("line")
line.display()

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值