Информация об изменениях

Сообщение Re[3]: Переиспользование существующих методов от 25.09.2017 11:38

Изменено 25.09.2017 12:46 Muxa

Re[3]: Переиспользование существующих методов
S>Т.е. нужен к примеру метод FindCustomers(). Этот метод находится в фасаде
В фасаде не должно быть такого метода, иначе получается что бизнес логика пролазит в абстракции.

Хорошим методом для фасада может быть что-то типа:
facade.setectCustomers(condition, fields);

Так же необходимы промежуточные кастомные классы, которые результат запросов к фасаду заворачивают в объекты нужных клиенту классов.
// core 
interface ICustomer;
class CustomerServiceBase
{ 
    Facade facade;
    List<ICustomer> selectCustomers(Condition cond);
}

// client
class ClientACustomer : ICustomer;
class ClientACustomerService :  CustomerServiceBase
{
    List<ICustomer> selectCustomers(Condition cond)
    {
        // транслировать запрос фасаду и вернуть список объектов класса ClientACustomer
    }
}
Re[3]: Переиспользование существующих методов
S>Т.е. нужен к примеру метод FindCustomers(). Этот метод находится в фасаде
В фасаде не должно быть такого метода, иначе получается что бизнес логика пролазит в абстракции.

Хорошим методом для фасада может быть что-то типа:
facade.setect(table, condition, fields);

Так же необходимы промежуточные кастомные классы, которые результат запросов к фасаду заворачивают в объекты нужных клиенту классов.
// core 
interface ICustomer;
class CustomerServiceBase
{ 
    Facade facade;
    List<ICustomer> selectCustomers(Condition cond);
}

// client
class ClientACustomer : ICustomer;
class ClientACustomerService :  CustomerServiceBase
{
    List<ICustomer> selectCustomers(Condition cond)
    {
        // транслировать запрос фасаду и вернуть список объектов класса ClientACustomer
    }
}