Files
2026-07-13 12:42:18 +08:00

38 lines
947 B
Scala

package com.example.auth
import scala.collection.mutable
import scala.collection.mutable.{HashMap, ListBuffer}
import scala.util.Try
import scala.concurrent._
trait Repository[T]:
def findById(id: Int): Option[T]
def save(entity: T): Unit
case class User(id: Int, name: String, email: String)
class InMemoryRepo extends Repository[User] with Serializable:
private val users = mutable.HashMap[Int, User]()
override def findById(id: Int): Option[User] =
users.get(id)
override def save(user: User): Unit =
users.put(user.id, user)
println(s"Saved user ${user.id}")
class UserService(repo: Repository[User]):
def createUser(name: String, email: String): User =
val user = User(1, name, email)
repo.save(user)
user
def getUser(id: Int): Option[User] =
repo.findById(id)
object UserService:
def apply(repo: Repository[User]): UserService = new UserService(repo)
enum Color:
case Red, Green, Blue