0
面向對象的原則之一是代碼的封裝。每個對象都知道如何實現它的方法。對象只知道如何調用以及如何獲取其他對象方法的結果。異步過程和麪向對象的範例
當對象方法調用遠程服務時,我看不到如何實現此原則。
例如:
Class A{
method1(){
...
}
method2(){
callRemote(receiveAnswer);
}
receiveAnswer(answer){
...
}
}
Class B{
main(){
A a = new A();
a.method2();
a.method1();
}
}
方法2()類A需要receiveAnswer()來完成本身=>它的邏輯的一部分是內部receiveAnswer()。並且只有在遠程服務發送答案後才執行receiveAnswer()。
在B類中,main()直接執行a.method2()然後執行a.method1(),而無需等待遠程服務回答method2()。
很多時候,method1()需要完整執行method2()(包括處理遠程服務應答)才能正確執行。
我應該將調用外部化到類B中的遠程服務(這似乎不太合適,因爲在那種情況下,我會向外部公開一個對象邏輯)?還有其他的方式嗎?
感謝;)
PS:我編碼在ActionScript 3