Страницы

Поиск по вопросам

пятница, 20 декабря 2019 г.

Разбить “класс-бог”

#c_sharp #wcf


В моём проекте есть сервис WCF, есть интерфейс описывающий ServiceContract (IMainHost),
и есть класс на основе этого интерфейса (MainHost). И всё отлично работает. Смущает
только одно - класс такого размера что студия тормозит когда я его редактирую. Создавать
ещё один сервис так себе вариант. Я его конечно могу сделать partial, но вдруг есть
какие то другие варианты? 
    


Ответы

Ответ 1



Делегирование (англ. Delegation) — основной шаблон проектирования, в котором объект внешне выражает некоторое поведение, но в реальности передаёт ответственность за выполнение этого поведения связанному объекту. Часть внутренней реализации MainHost вынести по смыслу в отдельные классы и использовать их внутри MainHost.

Ответ 2



Методы wcf-сервиса должны представлять собой всего несколько строк: [АтрибутДляКонтроляПравДоступа(какие, то, параметры)] public Метод(Его аргументы) { return КакойТоBll.Метод(аргументы); } Итого 6 строк (одна пустая) на метод. Остальное следует разложить по bll-классам.

Комментариев нет:

Отправить комментарий