LINUX.ORG.RU
ФорумTalks

SRP стоит ли?

 


0

1

Допустим есть:

class Document {
    public void dump() { ....... }
    public void print() { ....... }
}
Сразу видим две обязанности и две причины для изменения. Но нужно ли делить класс? Ведь это добавляет сложность, а как известно, со сложностью мы должны бороться. Не бред ли все эти принципы?

Другое дело, когда появляется еще один тип принтера, тогда мы начнем выносить код печати кудато еще. Но до тех пор пока этого не случилось, может не нужно делить класс? Вы как считаете, ребята?

★★★

Последнее исправление: pozitiffcat (всего исправлений: 1)

Слишком мало информации.

Solace ★★
()

Вообще странно что класс должен знать как себя печатать.

Printer.print(Document document)

Выглядит более адекватно. Что такое dump() здесь не понятно, возможно тоже не нужно.

roy ★★★★★
()
Ответ на: комментарий от roy

Вообще странно что класс должен знать как себя печатать.

А если он хочет печатать себя лесенкой по A4?

kirk_johnson ★☆
()
Ответ на: комментарий от roy

Printer.print(Document document)

Выглядит более адекватно.

Это если у тебя документ публикует свою структуру (например используя DOM). В противном случае:

Document.paint(PaintContext ctx)

Т.е. документ в этом методе отображает себя используюя api контекста в растр или вектор, а выводить это в картинку или на принтер дело десятое

Deleted
()

Но нужно ли делить класс? Ведь это добавляет сложность,

из неверных посылок можно выводить что угодно

dimon555 ★★★★★
()

Если выделить подсистемы: «Данные», «Печать», «БД», то тогда получается, что будет все разделено. Так наверное правильнее. Не получается интерпретировать правильно принципы «Простое лучше сложного» и «SRP» вместе.

pozitiffcat ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.