我正在構建具有驚人數量抽象的ubercool應用程序。 現在我要設計過度設計的EntityGetService。選項和未來
我想的第一件事是很多抽象類,讓說,這樣的事情:這裏
trait EntityGetService[ID, ENTITY, CONTAINER] {
def get(id: ID): CONTAINER
}
容器的東西,包含(或不包含)鍵入所需的實體。與選項[ENTITY]非常相似。但是我想要的第二件事,那就是CONTAINER也可以成爲未來[ENTITY]。
所以我真的想寫特點是這樣的:
trait EntityGetService[ID, ENTITY, CONTAINER <: Wrapper[ENTITY]] {
def get(id: ID): CONTAINER
}
,在這種方式指定它:
trait EntitySyncGetService[Long, Entity, Option[Entity]] {
def get(id: Long): Option[Entity]
}
trait EntityAsyncGetService[Long, Entity, Future[Entity]] {
def get(id: Long): Future[Entity]
}
有沒有辦法做到這一點,而無需重新延長或混合的東西期權和未來?
它看起來像期權和未來有一點共同的(他們兩個集裝箱)。這與單子有關嗎?
還是這只是一個我的失眠的產品?
看起來像這是我正在尋找。你能指出一些資源來閱讀這個功能嗎?快速的谷歌搜索沒有顯示任何有用的信息。 –