私は、共同開発者 (および以前の開発者) の 1 人が、内部に多くのメソッド呼び出しがあるクラスのほぼすべてのページに Singleton/Facade を使用するプロジェクトに取り組んでいますが、実際にはそれを維持していません。データ。
例えば:
public class FooFacade
{
private static FooFacade m_facade = null;
private static DataAccessManager m_dataAccessMgr = null;
public StringBuilder Status {get; set; }
private FooFacade()
{
this.Status = new StringBuilder();
}
public static FooFacade getInstance()
{
if (m_facade == null)
{
m_dataAccessMgr = DataAccessManager.getInstance();
m_facade = new FooFacade();
}
return m_facade;
}
public void clearStatus()
{
this.Status.Remove(0, Status.Length);
}
public void Method1(string value1, int value2)
{
// DO SOMETHING
}
public List<string> Method2(string value1, int value2)
{
// DO SOMETHING ELSE
// RETURN LIST
}
さて、命名規則と、Facade と同じクラス内に Singelton があるという事実と、Facade が実際には Facade ではないという事実に、特定の問題があります。(しかし、それはまったく別の会話です)。
したがって、私の質問は、これによって本当にメリットがあるかどうかです。開発者が説明できる最善のことは、オブジェクトを常に作成および破棄するわけではないため、メモリ管理に適しているということです。
私たちのアプリケーションはエンタープライズ レベルのアプリではなく、メモリに問題はありません。サイトが遅いときはいつでも、コードではなくデータベースが原因です。
ご協力いただきありがとうございます。私は、なぜ自分をより良い開発者にするのかを知りたがる開発者です。意味のある言葉で開発者からそれを得ることができないので、私はあなたたちに手を差し伸べています.
ありがとう、チャド
更新 以下のコメントのおかげで、重大なセキュリティ上の欠陥である可能性があるため、ステータスが深刻な懸念事項であることを知っています. メモリ管理や速度などに関して、シングルトンでこのコードを使用する利点はありますか? または、必要なたびに FooFacade をインスタンス化する方が簡単でしょうか。