1
我目前的項目正在使用Java。我們推動業務邏輯enum代表特定的狀態(新建,註冊等)。在scala中,我只是想知道用case對象作爲狀態是個好主意嗎?有什麼缺點。can case object as a state
一個簡單的例子
trait State {
def read() : Try[String] = {
Failure(new IllegalStateException("too young to read"))
}
}
case object child extends State
case object young extends State {
override def read() : Try[String] = {
Success("young people read book")
}
}
case object elder extends State {
override def read() : Try[String] = {
Success("elder people read book")
}
}
class Person(state : State) {
def read() : Try[String] = {
state.read()
}
}
將您的案例類設爲大寫字母,例如'Child'而不是'child'是個好習慣。 –
查看Akka的[有限狀態機](http://doc.akka.io/docs/akka/2.3.1/scala/fsm.html)(FSM)獲取靈感。 –