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

強類型和Actor:ActorLite的演示

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

為了避免繁瑣的轉(zhuǎn)型,為了獲得類型安全的各種優(yōu)勢,我們也可以選擇為每種不同的消息創(chuàng)建獨立的類型。不過由于一個Actor往往會應(yīng)對各種消息,因此在.NET環(huán)境中,往往我們需要把消息類型定義為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來進行邏輯分支判斷還是必要的,不過我們這里使用了靜態(tài)類型代替了Magic String(當(dāng)然在使用Tag Message時也可以使用常量)的判斷,同時危險而麻煩的類型轉(zhuǎn)換操作也減少的。與Tag Message相比,這種做法獲得了一定的類型安全優(yōu)勢,可以得到編譯器的靜態(tài)檢查,做起重構(gòu)來也有了依據(jù)。不過他也有比較明顯的缺陷,那就是需要構(gòu)建大量的消息類型。要知道消息類型的數(shù)量很可能是Actor類型數(shù)量的幾倍,每種消息類型還包含著多個屬性,構(gòu)造函數(shù)接受參數(shù),然后在構(gòu)造函數(shù)里設(shè)置屬性……這種做法對復(fù)雜性的提升還是較為可觀的,有時候會感覺還不如使用簡單的Tag Message。

【編輯推薦】

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

2010-09-26 09:01:18

SQL強類型查詢

2009-09-08 14:56:55

強類型DataContLinq to SQL

2023-10-10 19:32:43

強靜態(tài)類型制表符

2009-08-18 10:17:25

C#枚舉類型

2009-07-09 10:02:39

Actor模型Erlang

2024-07-09 08:00:48

C#var?關(guān)鍵字

2009-09-27 11:27:33

Hibernate3JBOSS 3.2

2011-04-13 08:49:33

DataSet強類型化

2010-12-23 14:03:26

SharePoint 視頻

2010-06-01 16:50:29

MySQL存儲過程

2010-03-02 14:12:30

WCF枚舉類型

2009-08-03 11:07:18

Scala Actor

2011-09-19 09:32:21

微軟Windows SerAzure

2020-08-31 19:17:24

Python強類型語言弱類型語言

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技術(shù)棧公眾號

主站蜘蛛池模板: 国产精品久久久久久久7电影 | 国产视频精品在线 | 在线精品亚洲欧美日韩国产 | 在线中文字幕日韩 | 91精品麻豆日日躁夜夜躁 | 天堂久久av | 伊人99| 久久久久久中文字幕 | 亚洲网站免费看 | 国产精品毛片一区二区三区 | 精品免费视频一区二区 | 亚洲国产精品日韩av不卡在线 | 亚洲欧美视频一区 | 福利社午夜影院 | 久久99精品视频 | 日韩精品一区二区三区中文在线 | 五月天婷婷综合 | 久久国产一区二区三区 | 九色在线 | 国产一级在线观看 | 久久亚洲一区 | 国产精品久久久久久久久久 | 日本一区二区不卡视频 | 欧美久久久久久久久 | 久久精品视频在线播放 | 亚洲精品一二三 | 欧美大片一区二区 | 91在线精品视频 | 国产精品美女在线观看 | 国产欧美精品一区二区色综合朱莉 | 免费在线观看一区二区 | www.日本在线观看 | 精品欧美一区二区三区久久久 | 五月天激情电影 | 久久精品二区 | 91视频一区二区 | 国产精品久久久久久婷婷天堂 | 日韩免费视频一区二区 | 一区二区三区国产精品 | 日韩无 | av日韩一区 |