2011-03-09 37 views
1

我有一個Flex應用程序創建的輔助函數和我使用的是凱恩戈姆結構 -如何在Flex應用程序

的src/COM/mysite的/編輯/模型/包含以下兩件事情

EditorModelLocator 。至於(辛格爾頓強迫應用全局), EditorGlobalConstants.as(包含所有常量),像下面

public static const SUPPORT_PHONE:String = '800-865-7496'; 
public static const SUPPORT_EMAIL:String = '[email protected]'; 

我不知道放在哪裏輔助方法最好的地方是。我需要這些成爲我可以在單例強制類之外使用的方法。把它放到Global Constants中是否有意義?針對這一點的唯一的事情,是我一直使用EditorGlobalConstants以同樣的方式:

EditorGlobalConstants.SUPPORT_PHONE 

一個「輔助函數」的一個例子是:

public var blank(value:String):Boolean { 
    if(value == '' || value == null) return true; 
    return false; 
} 

我所有這些信息存儲在EditorGlobalConstants ,但我想知道如果可能EditorHelpers.as會更好,我將如何實例化/使用該解決方案?

謝謝!

安德魯·索普

回答

0

如果你要使用你的helper方法不僅在你的單例類,這將是最好的地方上把他們的層次結構。你可以輕鬆地找到自己的地方。讓我們試試:

  1. 將你的應用程序(在想象/紙/任何)分解成一個盒子。每個班級都是一個獨立的箱子。
  2. 將它們放入結構中。你只需要看看哪些盒子放在哪些盒子裏面。
  3. 標記盒子類,你將在哪裏使用這些方法。
  4. 找到頂層,你將在哪裏使用它們並將你的課程放在那裏。

讓我們看一個例子。。假設你有這樣的結構:

ToplevelApplication 
|-BoxAtLevel_1 
| |-BoxAtLevel_2 
... 

,如果我想我只是在BoxAtLevel_2使用的幫手,我把它們放在那裏:

|-BoxAtLevel_1 
| |-BoxAtLevel_2 
| |-Helpers 

而且等等..如果你有什麼麻煩 - 把你的結構放在這裏,我會幫忙的。

另外,關於EditorHelpers.as ..這是一個實例級別的東西還是相當類級別的東西?這就是設置你使用它們的方式。

+0

嗯,這就是我的問題。這是一個flex應用程序,EditorModelLocator,EditorGlobalConstants和EditorHelpers需要在應用程序的任何位置都可以訪問。這就是爲什麼我決定創建一個單獨的類EditorHelpers.as。將這些方法創建爲靜態方法是否有意義,所以我不必實例化EditorHelpers以便使用它們? – andrewpthorp 2011-03-09 15:35:53

+0

如果是的話,是的。如果您要在應用程序中廣泛使用方法,他們只是要求將它們推廣爲靜態方法:)還有一個問題:您是否考慮過將這些函數放入一個基類? (如果你的功能與你的課程相關,將它們放在全球級別將會破壞封裝原則)。 – Antenka 2011-03-09 15:54:13

1

不熟悉cairngorm如何處理事情,但是在AS3中,函數不一定是類的一部分。

例如,你可以有一個與內容稱爲helperFunction.as文件:

package my.package { 
    public function helperFunction(arg1:Object, arg2:String):void { 
    // Do stuff 
    } 
} 

然後,只需導入方法,就像您別的:

import my.package.helperFunction 

,你可以使用它你碼。

只需選擇一個可以讓生活方式有意義的軟件包(可能與其幫助的對象定義在同一個軟件包中)。

相關問題