Skip to content

Instantly share code, notes, and snippets.

@takkkun
Created November 16, 2016 08:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save takkkun/68b73227d3868686d37c4fd51ea79eaf to your computer and use it in GitHub Desktop.
Save takkkun/68b73227d3868686d37c4fd51ea79eaf to your computer and use it in GitHub Desktop.
import user
import message
object Main {
def main(args: Array[String]) {
import MessageSender._
val natsuki = User("Natsuki Ando")
val sakura = User("Sakura Domyoji")
val message = natsuki.sendMessage(sakura, "A message")
println(message)
}
}
package message
import user
case class Message(sender: User, recipient: User, body: String)
object Message {
def send(sender: User, recipient: User, body: String): Message =
Message(sender, recipient, body)
}
class MessageSender(user: User) {
def sendMessage(recipient: User, body: String): Message =
Message(user, recipient, body)
}
object MessageSender {
implicit def userToMessageSender(user: User): MessageSender = new MessageSender(user)
}
package user
case class User(name: String)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment