scala工厂模式
来源:互联网 发布:药智网医保目录数据库 编辑:程序博客网 时间:2024/05/17 09:03
1.
object Element {
private class ArrayElement(val contents: Array[String]) extends Element
private class LineElement(s: String) extends Element {
val contents = Array(s)
override def width = s.length
override def height = 1
}
private class UniformElement(
ch: Char,
override val width: Int
override val height: Int) extends Element {
private val line = ch.toString * width
def contents = Array.make(height, line)
}
def elem(contents: Array[String]): Element = new ArrayElement(contents)
def elem(chr: Char, width: Int, height: Int): Element = new UniformElement(chr, width, height)
def elem(line: String): Element = new LineElement(line)
def elem(line: String): Element = new LineElement(line)
}
2. import Element.elem
abstract class Element {
def contents: Array[String]
def width: Int = if(height == 0) 0 else contents(0).length
def height: Int = contents.length
def above(that: Element): Element = elem(this.contents ++ that.contents)
def beside(that: Element): Element = elem( for((line1,line2) <- this.contents zip that.contents) yield line1 + line2)
override def toString = contents mkString "\n"
}
- scala工厂模式
- scala实现设计模式之简单工厂模式
- scala实现设计模式之工厂方法模式
- scala实现设计模式之抽象工厂方法
- Scala设计模式Part I. 创建模式——1.抽象工厂
- Scala设计模式Part I. 创建模式——3.工厂方法
- 工厂模式 -- 工厂方法
- 工厂模式 -- 抽象工厂
- 工厂模式-简单工厂
- 工厂模式-工厂方法
- 工厂模式:静态工厂
- 工厂模式-简单工厂
- 工厂模式-抽象工厂
- 工厂模式-工厂方法
- 工厂 > 工厂方法模式
- 工厂模式-静态工厂
- 工厂模式-抽象工厂
- 工厂模式
- 连续子数组最大和
- poj2109 Power of Cryptography(数学题)
- flume笔记(一)
- ajax传对象或者数组到后端
- JavaScript实现公历转换农历
- scala工厂模式
- 2092 整数解
- iOS数据存储的几种方式
- 欧几里德算法(求两个数的最大公约数)
- Creating a Game Concept: The First Step in Getting Your Game off the Ground
- 最长不重复子串
- 如何快速正确的安装 Ruby, Rails 运行环境
- AndroidManifest.xml文件解析
- Java多线程-工具篇-BlockingQueue