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

223
21 октября 2017, 15:22

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

Answer 1

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

Часть внутренней реализации MainHost вынести по смыслу в отдельные классы и использовать их внутри MainHost.

Answer 2

Методы wcf-сервиса должны представлять собой всего несколько строк:

[АтрибутДляКонтроляПравДоступа(какие, то, параметры)]
public Метод(Его аргументы)
{
  return КакойТоBll.Метод(аргументы);
}

Итого 6 строк (одна пустая) на метод. Остальное следует разложить по bll-классам.

READ ALSO
Пост на странице пользователя через VK API (JavaScript)

Пост на странице пользователя через VK API (JavaScript)

Как опубликовать пост c картинкой из внешнего ресурса через ВК API (JS)? Как правильно прописать параметр attachments что-бы прикрепилась картинка...

242
Как создать поле класса в JavaScript [дубликат]

Как создать поле класса в JavaScript [дубликат]

На данный вопрос уже ответили:

326
разбить число на сумму произведений его составляющих

разбить число на сумму произведений его составляющих

Есть число, например 111, так же есть ещё 2 числа 3 и 5 на которые число 111 должно разделиться без всяких остатков и прочего

275