1

名前空間名を常に再利用することは、C#の規則/ベストプラクティスに有効であると思っていました。

私はほとんどのプログラムを Java で開発しています。実装用のパケットがあります。

com.ajravindiran.jolt.game.items.sql
com.ajravindiran.jolt.game.users.sql
com.ajravindiran.jolt.events.impl
com.ajravindiran.jolt.tasks.impl

com.ajravindiran.jolt.game.items.sql私の状況に最も近いについて話しましょう。私は現在、MySQL Connection/Net を OODBMS にラップするライブラリを作成しています。

だから私はISqlDataObject、次のメンバーを持つと呼ばれるインターフェースを持っています:

bool Insert(SqlDatabaseClient client);
bool Delete(SqlDatabaseClient client);
bool Update(SqlDatabaseClient client);
bool Load(SqlDatabaseClient client);

そして次のように使用されます:

public class SqlItem : Item, ISqlDataObject
{
    public bool Load(SqlDatabaseClient client)
    {
        client.AddParameter("id", this.Id);
        DataRow row = client.ReadDataRow("SELECT * FROM character_items WHERE item_uid = @id;");
        this.Examine = (string)row["examine_quote"];
        ...
    }

    ...
}

と呼ばれる:

SqlItem item = new SqlItem(int itemid);
GameEngine.Database.Load(item);

Console.WriteLine(item.Examine);

だから、アイテムのSQLエディションを何かに追加してもいいのか、JoltEnvironment.Game.Items.Sqlそれともそのままにしておくべきなのか疑問に思っていましたJoltEnvironment.Game.Itemsか?

AJ Ravindiran さん、ありがとうございます。

4

3 に答える 3

3

命名規則と規則については、MSDN の「名前空間の名前に関するフレームワーク ガイドライン」を参照してください。

そうは言っても、それはこの特定の問題をカバーしません:

だから、アイテムのSQLエディションをJoltEnvironment.Game.Items.Sqlのようなものに追加してもいいのか、それともJoltEnvironment.Game.Itemsのままにしておくべきなのか疑問に思っていましたか?

どちらでもかまいません。最も適切な方法は、特定のニーズによって少し異なります。

ゲーム アイテムがゲーム全体で広く使用されるが、データ アクセスはごく一部でしか使用されない場合、おそらくそれを独自の名前空間に分割します (おそらく Sql とは呼ばれませんが、おそらく Data または DataAccess を使用します)。 、最終的には SQL 以外の関連情報もそこに追加したい場合があるため)。

ただし、これらのクラスを Items 名前空間のクラスと一緒に常に使用する場合は、おそらくそれらを 1 つの名前空間に残します。

于 2010-01-20T00:28:42.683 に答える
1

あなたは命名規則について尋ねていますが、答えは、それは本当にあなた次第です。

複数の実装がある場合は、名前空間に追加のレベルの階層を許可します。あなたの場合、クエリにSqlを使用しない他のストレージメカニズムがある場合、.Sqlが適切です。多分それはXML/Xpathです。しかし、それがなければ、ネーミングの .Sql レイヤーは必要ないようです。

しかし、その時点で、なぜ前のレベルで {games,users} を使用するのか疑問に思っています。名前空間がより自然になったように感じます

JoltEnvironment.Game.Storage

..そして、完全修飾型名は次のようになります

JoltEnvironment.Game.Storage.SqlItem JoltEnvironment.Game.Storage.SqlUser

等々。

JoltEnvironment.Game.Items のような名前空間に 1 つまたは 2 つのクラスしかない場合、より高いレベルの名前空間に折りたたむ必要があるように思われます。

于 2010-01-20T00:28:51.950 に答える
1

SQL Edition を何と呼んでいますか? SQL Server のバージョン? またはデータベース接続のバージョン? 後者の場合、私は次のようなことをします:

JoltEnvironment.Game.Items.DataAccess.SQLServer
JoltEnvironment.Game.Items.DataAccess.MySQL 
JoltEnvironment.Game.Items.DataAccess.Oracle

等...

前者の場合は、プロバイダーに基づいて ADO.NET が処理してくれると思っていたので、同じ名前空間の下にあるものはすべて問題ありません。

于 2010-01-20T00:39:13.660 に答える