Rui, Mais correcto ainda seria utilizares alguma técnica de injecção do modelo para dentro do módulo. As frameworks de IOC são perfeitas para este tipo de coisa, mas podes perfeitamente fazê.lo de forma manual. Embora não exista nada de fundamentalmente errado com a sugestão do Miguel utilizando Singletons, isso acaba sempre por tornar o teu módulo dependente de um contexto específico tornando-o mais difícil de reutilizar e testar. A ideia seria definires um interface para o Modelo e tipares as propriedade locais dos módulos com esse interface. Deste modo ficas apenas comprometido com um definição genérica do modelo sem te preocupares com as implementações específicas. Depois, o contentor (por exemplo aplicação) que carrega os módulos tem a obrigação de os dotar com todas as dependências necessárias, nomeadamente com o modelo, daí as expressões inversão de controlo e injecção de dependências: Não são os componentes/módulos que vão procurar as suas dependências, são o contentores e controladores que as injectam quando necessárias.
Não sei se me consegui fazer entender, mas é mais ou menos isto... Rui On Dec 11, 4:45 pm, Miguel Vaz <[email protected]> wrote: > Como exemplo: > > Crias um ficheiro AModel.as (neste caso está dentro de uma dir de nome > "modelo", como vês no package): > > ---- > package modelo > { > import mx.collections.ArrayCollection; > > [Bindable] > public class AModel > > { > > import mx.controls.Alert; > > private static const _instance:AModel = new AModel( SingletonLock ); > > public static function get instance():AModel > { > return _instance; > } > > public function AModel( lock:Class ) > { > > if ( lock != SingletonLock ) > { > throw new Error( "Invalid Singleton access. Use > Model.instance." ); > } > > } > > public var Estado1:String = "estado_inicial"; > // etc > > class SingletonLock > {} > > ---- > > Em cada componente que necessites de atribuirreaver valores/funções do > modelo, utilizas: > > import modelo.AModel; > > [Bindable] > private var smodelo:AModel = AModel.instance; > > Se algures num dos teus componentes tens: > > ... > currentState="{smodelo.Estado1}" > ... > > Sempre que, em qualquer lado que tenhas chamado o modelo, alteres a var > "Estado1", isso será reflectido onde tiveres a atribuição acima. > > Mero exemplo, Rui, mas o código é o que utilizo, salvo se copiei alguma > coisa mal. Qualquer dúvida, dispõe. > > O MVC foi das descobertas mais úteis da minha vida, juntamente com a > internet, pastilha elástica e iogurtes com chocolate. > > MV > > 2009/12/11 Rui <[email protected]> > > > > > Essa possibilidade do Modelo origina-me uma serie de questões: > > > Sim, o que eu quero fazer é aceder ao currentState de cada Module. > > Esse modelo deve ser criado na aplicaçao principal certo? E como é que > > faço o binding? Não percebi com muita clareza essa solução > > > -- > > > Recebeu esta mensagem porque está inscrito no grupo "Mailing List da > > Comunidade Portuguesa de Rich Internet Applications -www.riapt.org" dos > > Grupos do Google. > > > Para publicar uma mensagem neste grupo, envie um e-mail para > > [email protected]. > > Para anular a inscrição neste grupo, envie um e-mail para > > [email protected] <riapt%[email protected]>. > > Para ver mais opções, visite este grupo em > >http://groups.google.com/group/riapt?hl=pt-PT. -- Recebeu esta mensagem porque está inscrito no grupo "Mailing List da Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" dos Grupos do Google. Para publicar uma mensagem neste grupo, envie um e-mail para [email protected]. Para anular a inscrição neste grupo, envie um e-mail para [email protected]. Para ver mais opções, visite este grupo em http://groups.google.com/group/riapt?hl=pt-PT.
