маркировка классов BLL как статических или?

У меня уже есть многоуровневый дизайн доступа к данным, который хорошо работает.Но я не знаю, самая подходящая это реализация или нет.
я просто хочу знать, что классы или методы BLL должны быть статическими или они должны быть конкретными классами, имеющими только один экземпляр?
Между тем мне не нужно сериализовать классы BLL, чтобы использовать его в таком дизайне SOA. Но я не знаю, что принесет эта функция.
Посмотрите на следующие варианты:

  1. Классы и методы BLL статичны
  2. Классы BLL не статичны, но их методы статичны
  3. Классы BLL не статичны, как и его методы. Приложение должно создавать класс BLL каждый раз для доступа к его методам.
  4. Классы BLL не являются статичными и не являются статичными. Но есть только один экземпляр каждого класса BLL. И приложение использует эти статические экземпляры для того, чтобы использовать методы 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();
6
задан Fer 17 January 2012 в 13:13
поделиться