【发布时间】:2016-06-14 05:46:35
【问题描述】:
当对象之间存在依赖关系时,以功能方式设计软件的方法是什么?
class Link(val name: String, val links: Vector[Link] = Vector()){
def changeName(newName: String): Link = {
new Link(newName, links)
}
def connect(other: Link): Link = {
new Link(name, links :+ other)
}
}
object Main
{
def main(args: Array[String]): Unit = {
val A = new Link("A")
val B = new Link("B")
val Alinked = A connect B
val updatedB = B changeName "B2"
println(Alinked.links.contains(updatedB))
}
}
输出
假
我连接了 A 和 B,但随后 B 正在更改。这意味着,我必须将新对象重新连接到以前的对象。在复杂的层次结构中,很难控制此类更新。
如何进行自动重新链接?代表?演员?
【问题讨论】:
标签: scala functional-programming immutability