Re[3]: Переиспользование существующих методов
От: Muxa  
Дата: 25.09.17 11:38
Оценка:
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
    }
}
Отредактировано 25.09.2017 12:46 Muxa . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.