コードでは、ユーティリティ関数と、Logger、EventWriter、いくつかの一般的な DB 呼び出しなどの機能を頻繁に使用します。コードのすべてでこれらのクラスから関数をインスタンス化すると、パフォーマンスが大幅に低下するため、これらの関数は静的であることが望ましいです (それは ?!!!? でしょうか?パフォーマンス ヒットになる可能性があります。私は、大規模な顧客データベースとサーバー上のアクセス ログの多いプロジェクトに取り組んでいます)。そして、私はstatic import in java
どれがクールに見えるか知りたいのですが、それを使用する前に深刻な考慮事項はありますか?
StackOverFlow から既に収集したもの:
静的インポートを使用すると、関数定義を判断するなど、コードが読めなくなる可能性があります。
それ以外に、私が心配しなければならないかなりの問題はありますか..?
古いコード:
class myservlet extends httpServlet
{
pubilc doPost()
{
Utils utils = new Utils();
DBFuncs dbFuncs = new dbFuncs();
Logger logger = new Logger();
EventWrtr eventWrtr = new EventWriter();
utils.GetEscapedName(name);
logger.Log("error");
eventWrtr.WriteEvent("something happened");
// Getting new Objects for every servlet calls
}
}
私の現在のコード:(これが不要なインスタンス化を回避することを願っています。コードは上記のようでした。今はこのように変更しています)
/* Declaring all the methods in the below classes as static methods */
import com.mycom.Utils;
import com.mycom.DBFuncs;
import com.mycom.Logger;
import com.mycom.EventWrtr;
class myservlet extends httpServlet
{
public doPost()
{
Utils.GetEscapedName(name);
Logger.Log("error");
EventWrtr.WriteEvent("something happened");
}
}
私はちょっとこれが好きで、特に以下のアプローチを使用する際のパフォーマンスに関連する深刻な問題を知りたいです
/* Declaring all the methods in the below classes as static methods */
import static com.mycom.Utils;
import static com.mycom.DBFuncs;
import static com.mycom.Logger;
import static com.mycom.EventWrtr;
class myservlet extends httpServlet
{
public doPost()
{
GetEscapedName(name);
Log("error");
WriteEvent("something happened");
}
}