2010-01-20 4 views
1

끊임없이 네임 스페이스 이름을 다시 사용하는 것이 C# 규칙/모범 사례에 유효한지 궁금합니다.C# 규칙/모범 사례

나는 자바에서 내 대부분의 프로그램을 개발 오전, 나는 구현을위한 패킷, 예를 들면 것이다 :

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을 얘기하자를. 나는 현재 OODBMS에 MySQL Connection/Net을 래핑하는 라이브러리를 작성했다. 그래서 궁금했다

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

Console.WriteLine(item.Examine); 

:

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"]; 
     ... 
    } 

    ... 
} 

그래서 나는 다음과 같은 멤버를 가지고 ISqlDataObject라는 인터페이스를 가지고 항목의 SQL 버전을 JoltEnvironment.Game.Items.Sql과 같은 것으로 추가하는 것이 좋습니다. 아니면 그냥 JoltEnvironment.Game.Items에 보관해야합니까?

감사합니다. AJ Ravindiran.

답변

1

이름 지정 규칙에 대해 묻는 중입니다. 답은 정말 당신에게 달려 있습니다.

여러 구현이있을 경우 네임 스페이스에서 추가 수준의 계층 구조를 허용합니다. 귀하의 경우, 쿼리를 위해 Sql을 사용하지 않는 다른 스토리지 메커니즘이있는 경우 .Sql이 적합합니다. 어쩌면 그것은 XML/Xpath입니다. 하지만 그걸 가지고 있지 않다면 .Sql 명명 레이어가 필요하지 않은 것처럼 보입니다.

하지만, 나는 왜 이전 수준에서 {게임, 사용자}를 사용하게 될지 궁금합니다. 네임 스페이스가 더 자연스럽게

JoltEnvironment.Game.Storage

입니다 같은 느낌 ..그리고 정규화 된 형식 이름은

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

등이 될 것입니다.

JoltEnvironment.Game.Items와 같은 네임 스페이스에 하나 또는 두 개의 클래스 만있는 경우 상위 수준 네임 스페이스로 축소해야하는 것처럼 보입니다.

3

명명 규칙 및 규칙은 MSDN's Framework Guidelines on Names of Namespaces을 참조하십시오.

말했다되고 그건

, 그이 특정 문제를 포함하지 않습니다 그래서 JoltEnvironment.Game.Items.Sql 또는해야처럼 무언가로 항목의 SQL 버전을 추가해도 괜찮은지 어떤지 궁금

그냥 JoltEnvironment에 보관 해. 게임. 항목?

중 하나를 수행하는 것이 좋으며 가장 적합한 방법은 사용자의 필요에 따라 조금씩 다릅니다.

게임 항목이 게임 전반에 걸쳐 퍼베이시브로 사용되지만 데이터 액세스가 작은 부분에서만 사용되는 경우 SQL을 자체 네임 스페이스로 분할 할 수 있습니다 (아마도 Sql이라고하지는 않겠지 만 아마도 Data 또는 DataAccess를 사용하십시오. 나중에 SQL 이외의 관련 정보도 추가 할 수 있기 때문입니다.

그러나이 클래스를 Items 네임 스페이스의 클래스와 함께 사용하면 단일 네임 스페이스에 두는 것이 좋습니다.

1

SQL Edition은 무엇입니까? SQL Server 버전? 또는 데이터베이스 연결 버전? 그래서, 등

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

...

이 이전하는 경우, 내가 ADO.NET은 공급자에 따라, 어쨌든 당신을 위해 돌볼 것이라고 생각 : 나중에, 내가 뭔가를 할 것입니다 같은 네임 스페이스 아래의 모든 것이 괜찮을 것입니다.