Consigli sulla struttura e nomi per spazi dei nomi e classi [chiuso]

3

Sono resistente a chiamare la classe "main" allo stesso modo del namespace, ma a volte mi trovo ad averne bisogno. Considerando che sto usando la formula Vendor.Namespace.[Subnamespace].Class , immagina questo scenario:

[MyFramework]
    [Database]
        Database
        Sql
        Schema
        DriverAbstract
        DriverInterface
        [Drivers]
            Mysql
            Postgresql
            Sqlite

obs: [] è per gli spazi dei nomi, gli altri sono classi.

Ora, potrei chiamare Database class Connection , ma quando importerò lo spazio dei nomi MyFramework.Database vedrò solo Connection nel codice (ma la connessione a cosa?). Un'altra soluzione sarebbe chiamarla DatabaseConnection , ma è davvero necessario? Mi piacerebbe sentire i tuoi pensieri e le tue idee su questo problema. Grazie (:

Sidequest: anche, quali sono i tuoi pensieri su DriverAbstract e DriverInterface ? Dovrebbero adattarsi meglio allo spazio dei nomi [Drivers] ? Dovrei chiamare DriverAbstract solo Driver ?

    
posta hugo_leonardo 13.01.2013 - 23:42
fonte

1 risposta

2

Sebbene tu non abbia specificato una lingua, alcuni dei suggerimenti forniti per .Net laguages si applicano a tutte le lingue: Nomi dei namespace .

Do not use the same name for a namespace and a type in that namespace. For example, do not use Debug for a namespace name and also provide a class named Debug in the same namespace. Several compilers require such types to be fully qualified.

Do not introduce generic type names such as Element, Node, Log, and Message. There is a very high probability it would lead to type name conflicts in common scenarios. You should qualify the generic type names (FormElement, XmlNode EventLog, SoapMessage).

Se la classe Database è pubblica, penserei a nominarla MyFramework Connection . Come minimo, eviterei di chiamarlo Database a causa del conflitto con lo spazio dei nomi.

Considera questo scenario.

namespace Database
{
    public class Database
    {
        public static object Schema { get; private set; }
    }

    public class Schema {
        ...
    }
}

Che cosa succede quando fai riferimento a:

Database.Schema

Restituisce il valore di Schema dalla classe Database o restituisce il tipo Schema dallo spazio dei nomi Database ?

    
risposta data 14.01.2013 - 00:12
fonte

Leggi altre domande sui tag