Comunidad de diseño web y desarrollo en internet online

Packages y su privacidad

Citar            
MensajeEscrito el 14 Abr 2012 11:49 am
Hola a todos, soy nuevo por el foro, no he posteado mucho aunque si que lo utilizo bastante como una fuente de conocimiento para buscar información.

Estoy desarrollando un proyecto en AS3 cuyo objetivo es la creación de un "componente web para ver mapas", el problema que tengo es que he ido desarrollandolo intentando seguir el patron modelo vista controllador, con lo que tengo bastantes clases para el modelo, la vista, etc.. y ahora me surge la siguiente duda: ¿Como ocultar las clases que internamente utilizo de las clases que debo proporcionar como API para el "usuario"(desarrollador) que integre mi componente?

El problema surge que tengo una jerarquia de paquetes basada en la estructura del directorio. Ej:

MiComponente
- visor
- API
- modelo
- Mapa
*Clases
- Capas
*Clases
- Tiempo
*Clases


Para que se vea una clase de tiempo en las clases del modelo, la tengo que poner publica, permitiendo que el usuario desarrollador acceda a esa clase pública :S cuando realmente quiero que acceda a las clases de la API.

Si alguien pudiera orientarme se lo agradecería.
Un saludo

Por Rilock

6 de clabLevel



 

chrome
Citar            
MensajeEscrito el 14 Abr 2012 12:50 pm
Algo como un control de visibilidad a nivel de paquetes, lo unico k encuentro son los namespaces, pero por lo que leo solo son aplicables a metodos y propiedades, nada de clases. por lo k desde fuera podrían ver las clases pero no acceder a sus metodos :S

Por Rilock

6 de clabLevel



 

chrome
Citar            
MensajeEscrito el 14 Abr 2012 04:21 pm
Si por ver te refieres a ver el código, mete todo en un swc y publica la documentación a si el usuario sabe que API tiene, si te refieres a visibilidad en sentido de scope, para eso existen los métodos públicos y privados

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 Abr 2012 05:12 pm
Gracias por la respuesta

En principio lo que voy a dar al usuario desarrollador es el conjunto de ficheros del componente. No me sirve con establecer métodos privados y públicos, quieo k haya clases k no pueda "ver" es decir, clases que no pueda instanciar. Sólo debe poder instanciar las clases que yo le proporcione con la API.

Un saludo

Por Rilock

6 de clabLevel



 

chrome
Citar            
MensajeEscrito el 14 Abr 2012 05:41 pm
Las clases abstractas no existen en AS, puedes usar Singletons, pero eso obedece a diseño de tu clase no a problemas de seguridad. Igual no entiendo mucho tu preocupación, quien querría instanciar clases que no pueden verse en el displaylist? En todo caso se puede instanciar el principal, y eso es lo lógico

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 Abr 2012 06:23 pm
Creo que no me estas entendiendo bien. No necesito clases abstractas, ni singleton. Necesito poder encapsular el codigo que tengo, sin dar más información de la que el usuario necesita. Ej: Tengo mi clase modelo, donde tengo clases para registrar formas o para gestionar el mapa, para trocear una imagen. No quiero dar el manejo de esas clases al usuario externo.
El problema viene de mi jerarquia con los paquetes, cada subcarpeta que tengo genera un paquete diferente, obligandome a tener una clase publica en ese paquete, para que otras clases internas que tengo hagan uso de esa clase. Pero sin embargo no quiero ofrecer esa clase al usuario final de mi componente.

Estoy intentando ver como generar un swc, igual me da alguna idea.

Un saludo

Por Rilock

6 de clabLevel



 

chrome
Citar            
MensajeEscrito el 14 Abr 2012 06:57 pm
En efecto, tienes que hacer un swc, Adobe mismo tiene una guia de como crear componentes

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.