C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: システム共通の値はどこでセットする?


(過去ログ 85 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■50048 / inTopicNo.1)  システム共通の値はどこでセットする?
  
□投稿者/ たの (1回)-(2010/05/27(Thu) 10:07:52)

分類:[ASP.NET (C#)] 

基本的な事かと思いますが、今まで曖昧でしたので
質問させて下さい。

システム起動時に一度DBから読み込めば、後はずっと
変わらない値がある場合、どこでセットすればよいのでしょうか?

私はApplication_Startで以下のようにセットしています。

パターン1:
Application["aaa"] = 111;

パターン2:
CommonClass.aaa = 111;

別途こんなクラスがあります。
public static class CommonClass
{
public static Int32 aaa;
}

どっちのパターンでも、やりたいことは出来ていますが
こんな方法でよいのでしょうか? どっちの方法が良い?

それとも、もっと一般的な方法があるとかあれば
教えて頂けると助かります。
引用返信 編集キー/
■50067 / inTopicNo.2)  Re[1]: システム共通の値はどこでセットする?
□投稿者/ 渋木宏明(ひどり) (1341回)-(2010/05/27(Thu) 14:33:41)
渋木宏明(ひどり) さんの Web サイト
> システム起動時に一度DBから読み込めば、後はずっと
> 変わらない値がある場合、どこでセットすればよいのでしょうか?

基本は、状況に応じて判断。

個人的には、どちらかを選択しなければならない強い理由がなければ

> パターン1:
> Application["aaa"] = 111;

は、ASP.NET の実装に強く依存していてテストしにくいので

> パターン2:
> CommonClass.aaa = 111;
>
> 別途こんなクラスがあります。
> public static class CommonClass
> {
> public static Int32 aaa;
> }

を採用します。

引用返信 編集キー/
■50093 / inTopicNo.3)  Re[1]: システム共通の値はどこでセットする?
□投稿者/ もりお (228回)-(2010/05/27(Thu) 23:39:21)
2010/05/28(Fri) 04:53:03 編集(投稿者)
間違っていたので削除します。

引用返信 編集キー/
■50484 / inTopicNo.4)  Re[2]: システム共通の値はどこでセットする?
□投稿者/ マサヤ (4回)-(2010/06/08(Tue) 17:07:57)
シングルトンを使ってあげればいいんじゃないですかね?
結果的にはパターン2になりますね。

http://msdn.microsoft.com/en-us/library/ff650316.aspx

引用返信 編集キー/
■50487 / inTopicNo.5)  Re[3]: システム共通の値はどこでセットする?
□投稿者/ なちゃ (445回)-(2010/06/08(Tue) 18:05:20)
個人的には、値の入れ物と、入れ物のインスタンスの管理は独立させるのが好みです。

例えばよくあるシングルトンの例とはちょっと違って、入れ物クラスとは別に、管理クラスを作成します。

これを単純にやると入れ物クラスのインスタンスがシンングルトンであることを保証は出来なくなりますが、
そんなことは気にしません。
あくまで管理クラスを通したレベルでシングルトンになるように管理します。

なぜこんな事をするかと言うと、結局これも環境依存度を少なくしてテスト性やポータビリティを向上させるためです。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -