(1)Cairngorm2.2の変更点
ちょっと遅めの報告ですけど、Caringorm2.2が出てますw。
http://weblogs.macromedia.com/akamijo/archives/2007/04/cairngorm_22.cfm
一番の目玉は、FDSへの依存の解消ということで、FDSを使用しない場合は普通のCairngorm、FDSを使用する場合はCairngorm Enterprise と、2つのパッケージを使い分けるようになった事でしょうか。
ソース見ないと気持ち悪いので、実際何が変わったのかちょっと調べました。
順番に行きます。
■CairngormMessageCodes.as
メッセージコードが6個だったのが15個に増えている
■IModelLocator.as
新規。マーカークラス。
■ModelLocator.as
IModelLocatorの追加に伴って、クラス化。(implements IModelLocator)
※つまり、ModelLocatorのインターフェイス/クラス名の命名方式を変更したってことです。
■CairngormEvent.as
dispatch()メソッドの追加。
CairngormEventDispatcher.getInstance().dispatchEvent( this );と書かれてます。
※helperクラスにて、わざわざCairngormEventDispatcherクラスからdispatchしなくてもEventクラスからディスパッチできます。
■FrontController.as
addCommand()メソッドのパラメータにuseWeakReferenceが増えた。
* @param useWeakReference A Boolean indicating whether the command
* reference should be held internally as a weak reference, meaning it will
* be garbage collected from the Dictionary of commands when all other hard
* references to the command reference have been garbage collected.
removeCommand()メソッドの新設。イベントリスナーの削除ができる。
※これは進歩だ!
※今まではadd()しっ放しだったイベントリスナーが、ちゃんとremoveできるようになってます。
■IServiceLocator.asの変更
getDataService()メソッドが無くなった
setRemoteCredentials()メソッドが増えた
※インターフェイスなので説明省略
■Responder.asの変更
メソッドに非推奨タグが。[Deprecated(replacement="mx.rpc.IResponder.fault")]
※わたしゃ既にIResponderを使ってますw
■ServiceLocator.asの変更
保持するプライベート変数が変わった
// old private var services : Array; private var httpServices : Array; private var messageAgents : Array; private var dataServices : Array;
// new private var _consumers : Consumers; private var _httpServices : HTTPServices; private var _producers : Producers; private var _remoteObjects : RemoteObjects; private var _webServices : WebServices;
但し、シングルトン用自クラスインスタンスは省略
getService()メソッドに非推奨タグ
getInvokerService()メソッドに非推奨タグ
getConsumer()メソッド内で、getServiceForId⇒consumers.getService()
getHTTPService()メソッド内で、getServiceForId⇒httpServices.getService()
getProducer()メソッド内で、getServiceForId⇒producers.getService()
getRemoteObject()メソッド内で、getServiceForId⇒remoteObjects.getService()
getWebService()メソッド内で、getServiceForId⇒webServices.getService()
setCredentials()メソッド内で、各インターナルクラスに処理をいこう
setRemoteCredentials()メソッドの新設。同様に各インターナルクラスの同メソッドを実行
あと、各インターナルクラスインスタンス用のprivate get メソッドが追加。
その他新設されたクラス達
com.adobe.cairngorm.business.AbstractServices.as
com.adobe.cairngorm.business.Consumers.as
com.adobe.cairngorm.business.HTTPServices.as
com.adobe.cairngorm.business.Producers.as
com.adobe.cairngorm.business.RemoteObjects.as
com.adobe.cairngorm.business.WebServices.as
com.adobe.cairngorm.business.IServices.as
※つまるところ今までServiceLocatorが担当していた役割を、各新設クラス達に分離させてますね
次回は、Cairngorm Enterpriseの方を見てみます。