《scala程序设计》笔记

来源:互联网 发布:deepin linux使用教程 编辑:程序博客网 时间:2024/06/18 00:06

第一章最后对于akka的actor操作


由于所有的消息都是异步发送的所以每次运行的结果都不一样,自己可以对结果进行分析

代码如下:

/**  * Created by DreamBoy on 2017/5/11.  */trait PeoplePleaser{  def makePeopleHappy = println("People like me")}abstract class Plant{  def photossynthesis = println("oh the sunlight!")}class Rose extends Plant with PeoplePleaser{  def smell = println("good!")}object Messages{  object Exit  object  Finished  case class Response(message:String)}class ShaperDrawActor extends Actor{  import Messages._  override def receive: Receive = {    case s:PeoplePleaser=>{ println("PeoplePleaser")}      sender!Response(s"PeoplePleaser:$s drawn")    case s:Plant =>{println("Plant")}    case Exit =>{println("-exit----")}      sender!Finished    case unexpected =>{ println("unexpected")}      val responce = Response(s"error unknown message:$unexpected")      sender!responce  }}object ShapesDrawingDriver {  def main(args: Array[String]): Unit = {    val system = ActorSystem("DrawingActorSystem",ConfigFactory.load())    val drawer = system.actorOf( Props(new ShaperDrawActor),"drawingActor")    val driver = system.actorOf(Props(new ShapesDrawingDriver(drawer)),"drawingService")    driver!Start  }}class ShapesDrawingDriver(drawActor:ActorRef) extends Actor{  override def receive: Receive = {case Start =>      drawActor!print("11111111")      drawActor!println("222222222")      drawActor!Exit    case Finished =>      drawActor!println("finished")  case unexpected =>      println(s"$unexpected")  }}
根据颜色分辨处理对应的步骤和结果吧


0 0
原创粉丝点击