Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Message from discussion ridurre le molteplici import
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Ivano Pagano  
View profile   Translate to Translated (View Original)
 More options Oct 30 2012, 4:54 am
From: Ivano Pagano <ivano.pag...@gmail.com>
Date: Tue, 30 Oct 2012 01:54:06 -0700 (PDT)
Local: Tues, Oct 30 2012 4:54 am
Subject: Re: ridurre le molteplici import

In generale non c'e' niente di male nel fare tanti import, se stai usando
molti componenti.
Se vuoi raggruppare tutto, allora dovresti fare un *object* contenitore che
espone tutte le chiamate che desideri, delegandole ai singoli pezzetti.

Tipo,

  object globalDSL {

    import a0Dominio._
    import a0DSL._
    import a0DSL.ComponentDSL._
    import a0DSL.AddFunction._
    import a0DSL.GroupDSL._
    import.....

    def myFun1 = ...delega al componente
    def myFun2 = ...delega al componente
    ...
    val myVal1 = ...delega al componente
    ...
    type MyType1 = ... una classe che vuoi rendere visibile
    ...
  }

una volta che hai fatto questo nel client ti basta fare l'import di questo
oggetto per avere visibilita' su tutto quello che hai delegato all'interno,
con un semplice:

import globalDSL._

Vorrei farti presente che la scelta di come organizzare il codice in package
diversi, e di cosa importare, non e' un punto secondario.
La modularizzazione (ogni oggetto che ingloba funzioni, variabili, tipi e'
una specie di modulo del tuo programma) e' un argomento che va gestito con
attenzione e considerazione, per evitare che il tuo namespace finisca
presto affogato di nomi (di metodi, classi, variabili) che vanno in
conflitto e di cui non e' chiara la provenienza.
Per questo un import semplice e automatico come adesso ti tornerebbe comodo
non e' previsto di default, ma e' necessario specificare ogni volta cosa
deve essere visibile ad ogni parte del codice.
Anche per questo in scala e' permesso fare import in qualunque parte del
codice e non solo all'inizio del file.

On Monday, October 29, 2012 6:08:25 PM UTC+1, Emanuele Losanno wrote:

> Sto realizzando un DSL.
> Ho un package con il dominio del mio modello, ed un altro package dove
> implemento il DSL.
> Per ogni classe concreta del mio modello creo un file object nel package
> del dsl con le regole che definiscono la sintassi per la classe concreta.
> Il problema è che questo object contiene più di una classe, dove ogni
> classe mi definisce un metodo (che in sostanza è una regola per la mia
> sintassi.) Non posso eliminare le classe.

> Quindi quando nel main voglio usare il mio DSL devo importare i singoli
> object oltre al package del dominio. Per esempio:

> import a0Dominio._
> import a0DSL._
> import a0DSL.ComponentDSL._
> import a0DSL.AddFunction._
> import a0DSL.GroupDSL._
> import.....e molti altri

> Come posso ridurre tutti questi import.
> Posso dichiararli tutti in un altro object e poi importare solo quella?
> NO, non và.
> Esiste una soluzione a questo inconveniente?


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.