Сообщение 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
}
}