一回も披露したことのない豆知識

現在、Java言語でネットワークプログラムを作っています。

このプログラムでは、どのIPが自分のPCとつながっているかを全て把握することが必要になってきます。
しかしながら、作り込んでいくうちにクラスが増えてきました。
そこで、IPアドレスなどのネットワーク情報を一気に管理できないかと考えた末、staticメンバを持ったクラスを作ろうという考えに至りました。インスタンスに依存しない、いわばDBのような形式を以て、管理できると考えたからです。

そこで、いくつか質問があります。
・「DBのような形式」というニュアンスで間違っていないか
・↑の質問とほぼ同じですが、staticフィールドは「グローバル変数の代わり」としてみてもよいか

以上の2点です。

ちなみに、そのstaticメンバを持つクラス内のメソッドは、staticフィールドの内容に関わるものなので、一応、オブジェクト指向の線からは外れていないと思います。

また、もし使い方が間違っているということでしたら、どのように全体的な情報を管理していくべきかご教授頂けると嬉しいです。

よろしくお願いします。

A 回答 (2件)

>これを使うと、使う場所で毎回インスタンスを取得しなくてはならず、


>それだったら、staticメンバを用いた方が効率が良い

毎回実行される "インスタンスを取得する" の中身はインスタンスポインタの値をロードするだけです。
これはいずれにしろ必要な動作です。
それ以外にstaticメンバの場合と比べてSingletonパターンの場合はマシン命令のコール/リターンが余分に必要になりますが、プログラム実行時間全体から見れば0.01%程度以下?で全く無視出来るでしょう。
以下等を参考に、どちらか適当な方を使われたら良いのではないでしょうか。
http://www.atmarkit.co.jp/fjava/javatips/075java …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
今回はStaticメンバを用いる方法で組みたいと思います。

お礼日時:2013/11/05 22:36

あなたのやりたいことを読むに、「Singletonパターン」で検索してみると幸せになれると思います。

この回答への補足

Singleton、初めて聞きました。
少し調べてみましたが、
これを使うと、使う場所で毎回インスタンスを取得しなくてはならず、
それだったら、staticメンバを用いた方が効率が良いと思うのですが、
どうなのでしょうか。

補足日時:2013/11/05 12:33
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
今回はStaticメンバを使用して組むことにしました。

Singletonを知れただけでも為になりました。

お礼日時:2013/11/05 22:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!