2017-05-26 14 views
0

DBに接続するアプリを書いています。私は多くのクラスからDataBase接続を使用できる必要があります。多くのクラスからデータベースに接続するために、シングルトン、静的クラスまたは `shared`を使用する必要がありますか?

class Database 
{ 
    auto MyConnection = new Connection("..."); // create connection 

    void calc() 
    { 
    MyConnection.query("..."); // use it 
    } 
} 

しかし、すべてのクラスからMyConnectionにアクセスする必要がありますか?どうすればいいですかDatabaseクラスstatic?または、私はシングルトンのパターンを使用する必要がありますか?またはMyConnectionsharedとしますか?

たとえば、設定はどうですか?例えばsharedとすることをお勧めしますか?

たとえば、mainの前に接続文をグローバルに宣言することはできますか?同様:

MySQLPool MyConnection; 

void main() 
{ 
//... 
} 

、その後static this() { }からか、DBクラスからMyConnectionを開始?ここで説明するように

+0

なぜ 'Database'を回してみませんか?それは多くの仕事のように見えるかもしれませんが、最終的にはあなたのコードはより良くなるでしょう。 –

答えて

0

は、リポジトリのパターンを見てください:http://web.archive.org/web/20150404154203/https://www.remondo.net/repository-pattern-example-csharp/

あなたは、アプリケーションのアーキテクチャを考えるべきです。ドメイン層に分離する必要が

Read 
Scaler 
Execute 
Insert 
etc 

あなたのリポジトリ層:あなたは、このアプローチで行く私は、私のような方法で(静的ではないとシングルトンではない)クラスと呼ばれるデシベルを持っているでしょう。

私の経験上、これによりコードがテスト可能になります。

関連する問題