Created
November 16, 2016 08:17
-
-
Save takkkun/68b73227d3868686d37c4fd51ea79eaf to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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