私はすでにうまく機能する階層化されたデータアクセス設計を持っています。しかし、それが最も適切な実装であるかどうかはわかりません。
BLL クラスまたはメソッドが静的であるべきか、インスタンスが 1 つしかない concreate クラスであるべきかを知りたいだけですか?
その間、BLL クラスをシリアル化して、そのような SOA 設計で使用する必要はありません。しかし、この機能が何をもたらすかはわかりません。
次のオプションを見てください。
- BLL クラスとメソッドは静的です
- BLL クラスは静的ではありませんが、そのメソッドは静的です
- BLL クラスは静的でもメソッドでもありません。アプリケーションは、メソッドにアクセスするために毎回 BLL クラスを作成する必要があります。
- BLL クラスは静的でもメソッドでもありません。ただし、各 BLL クラスのインスタンスは 1 つだけです。アプリケーションは、これらの静的インスタンスを使用して、BLL メソッドを使用します。
主にパフォーマンスとデザインで最も効率的なのはどれですか?
編集:
オプション1
public static class BllCustomer
{
public static List<ModelCustomer> GetCustomers()
{
}
}
// usage
BllCustomer.GetCustomers();
オプション2
public class BllCustomer
{
public static List<ModelCustomer> GetCustomers()
{
}
}
// usage
BllCustomer.GetCustomers();
オプション3
public class BllCustomer
{
public List<ModelCustomer> GetCustomers()
{
}
}
// usage
BllCustomer bllCustomer = new BllCustomer();
bllCustomer.GetCustomers();
オプション4
public class BllCustomer
{
public List<ModelCustomer> GetCustomer()
{
}
}
// usage
public static BllCustomer s_BllCustomer = new BllCustomer();
// whenever needed
s_BllCustomer.GetCustomer();