現在、Java EE用にHTMLソースを簡潔なコーディングで書き出せるライブラリの開発を行っています。
仮にHTMLGeneratorクラスのインスタンス変数を使いHTMLソースを生成するとします(本当はHTMLソースを書き出すための抽象メソッドを持っていますが話をわかりやすくするために)。
具体的にはHttpServletサブクラスのdoGetおよびdoPostメソッド、もしくはTagインターフェース実装クラスのdoStartTagやdoEndTag等のHTMLソースの書き出しを行えるメソッド内で、ローカル変数としてHTMLGeneratorクラスのインスタンスを生成する事を想定しています。
このライブラリでは、メモリの使い過ぎや、ライブラリ内でクラス変数、クラスメソッドやenum型の定義する等により、ライブラリを使用しているWEBアプリに悪影響を及ぼさない事を重視したいと考えています。
ここからが本題なのですが、例えば、多種多様なMimeタイプをそれぞれString型で参照できるクラスがあるとします。
実装方法を下記の2つのどちらかで考えており、皆様から意見やアドバイスをいただければ幸いです。
下の例以外にも定数を扱うようなクラスがあれば、どちらの方法が良いか自己判断できるようになればと思います。
また、全く別の実装方法が良い場合もご指摘をいただければ幸いです。
Java
1public final class MimeTypes{ 2 public final String TEXT_PLAIN = "text/plain"; 3 ... 4 数十もしくは数百の定数 5 ... 6 public final String TEXT_HTML = "text/html"; 7}
Java
1public final class MimeTypes{ 2 public final String textPlain(){ 3 return "text/plain"; 4 } 5 ... 6 数十もしくは数百のメソッド 7 ... 8 public final String textHtml(){ 9 return "text/html"; 10 } 11}
上の方法は、定数であることがわかりやすく、コーディングの際の見栄えも良いと考えています。
下の方法は、定数を宣言しないのでメモリの節約になるのではと考えています。
自分自身の考えとしては、WEBアプリへのアクセスが集中した場合も考慮し、下の方法でメモリ消費量を少しでも減らした方が良いと考えています。
しかし、その考えや理解が正しいかが不安なので質問をさせていただきました。
何卒よろしくお願いいたします。
あなたの回答
tips
プレビュー