成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

強類型和Actor:ActorLite的演示

開發 開發工具
本文使用ActorLite演示了將消息類型定義為Object的過程。為了避免繁瑣的轉型,為了獲得類型安全的各種優勢,我們也可以選擇為每種不同的消息創建獨立的類型。

為了避免繁瑣的轉型,為了獲得類型安全的各種優勢,我們也可以選擇為每種不同的消息創建獨立的類型。不過由于一個Actor往往會應對各種消息,因此在.NET環境中,往往我們需要把消息類型定義為object。如果使用ActorLite來演示的話,代碼可能是這樣的:

ActorLite的演示

  1. class Person : Actor<object>  
  2. {  
  3.     protected override void Receive(object message)  
  4.     {  
  5.         if (message is ChatMessage)  
  6.         {  
  7.             ChatMessage chatMsg = (ChatMessage)message;  
  8.             Person another = chatMsg.Another;  
  9.             Topic topic = chatMsg.Topic;  
  10.             // ...  
  11.         }  
  12.         else if (message is EatMessage)  
  13.         {  
  14.             EatMessage eatMsg = (EatMessage)message;  
  15.             Restaurant restaurant = eatMsg.Restaurant;  
  16.             // ...  
  17.         }  
  18.         else if (message is WorkMessage)  
  19.         {  
  20.             WorkMessage workMsg = (WorkMessage)message;  
  21.             Person reportTo = workMsg.ReportTo;  
  22.             Job job = workMsg.Job;  
  23.             // ...  
  24.         }  
  25.     }  

圖示如下:

強類型下的Actor 

在Actorlite演示中,使用if…else來進行邏輯分支判斷還是必要的,不過我們這里使用了靜態類型代替了Magic String(當然在使用Tag Message時也可以使用常量)的判斷,同時危險而麻煩的類型轉換操作也減少的。與Tag Message相比,這種做法獲得了一定的類型安全優勢,可以得到編譯器的靜態檢查,做起重構來也有了依據。不過他也有比較明顯的缺陷,那就是需要構建大量的消息類型。要知道消息類型的數量很可能是Actor類型數量的幾倍,每種消息類型還包含著多個屬性,構造函數接受參數,然后在構造函數里設置屬性……這種做法對復雜性的提升還是較為可觀的,有時候會感覺還不如使用簡單的Tag Message。

【編輯推薦】

  1. C#的Tag Message回顧:繁瑣而危險
  2. Erlang的Actor回顧:將消息轉化為邏輯執行
  3. Actor模型的本質:究竟是要解決什么問題
  4. 順暢的使用C# Actor:另一個解決方案
  5. C# Actor的尷尬與F#美麗外表下的遺憾
責任編輯:yangsai 來源: 老趙點滴
相關推薦

2010-09-26 09:01:18

SQL強類型查詢

2009-09-08 14:56:55

強類型DataContLinq to SQL

2023-10-10 19:32:43

強靜態類型制表符

2009-08-18 10:17:25

C#枚舉類型

2009-07-09 10:02:39

Actor模型Erlang

2024-07-09 08:00:48

C#var?關鍵字

2009-09-27 11:27:33

Hibernate3JBOSS 3.2

2011-04-13 08:49:33

DataSet強類型化

2010-03-02 14:12:30

WCF枚舉類型

2010-12-23 14:03:26

SharePoint 視頻

2010-06-01 16:50:29

MySQL存儲過程

2009-08-03 11:07:18

Scala Actor

2020-08-31 19:17:24

Python強類型語言弱類型語言

2011-09-19 09:32:21

微軟Windows SerAzure

2024-05-20 08:58:13

Java引用類型垃圾回收器

2010-07-05 12:09:16

SQL Server

2017-03-27 16:08:58

2009-06-11 17:54:00

Visual StudDataSet

2012-11-15 10:18:11

IBMdw

2022-03-26 09:06:40

ActorCSP模型
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产成人福利在线观看 | 国产ts人妖系列高潮 | 看片天堂| 久操福利 | 日日噜噜噜夜夜爽爽狠狠视频, | 久久精品一区 | 欧美激情在线精品一区二区三区 | 99久久婷婷国产综合精品首页 | 亚洲av毛片| 51ⅴ精品国产91久久久久久 | 国产精品视频区 | 亚洲视频在线免费观看 | 蜜臀网 | 色婷婷综合久久久中字幕精品久久 | 91精品国产91久久久久久最新 | 久久国产欧美日韩精品 | 国产在线一区二区 | 欧美成人免费在线 | 日韩精品a在线观看图片 | 欧美videosex性极品hd | av黄色在线 | 可以免费观看的av | 国产精品 亚洲一区 | 九九热在线观看 | 久久成人精品视频 | 欧美精品一区二区三区四区 在线 | 天天影视综合 | 亚洲国产aⅴ成人精品无吗 国产精品永久在线观看 | 亚洲一区在线播放 | 99免费视频 | 久久久久久色 | 在线伊人网 | 狠狠做六月爱婷婷综合aⅴ 国产精品视频网 | 中文字幕亚洲精品 | 精品区一区二区 | 国产亚洲精品久久情网 | 欧美激情精品久久久久久 | www.色婷婷 | 美女黄色在线观看 | 亚洲激情综合 | 在线观看黄色电影 |