Что такое разделение проблем?
Какая проблема?
Как можно разбить приложение на эти "разные проблемы"?
Что такое разделение проблем?
Ответ 1
Обеспокоенность - это различные аспекты функциональности программного обеспечения. Например, "бизнес-логика" программного обеспечения вызывает озабоченность, и интерфейс, через который человек использует эту логику, является другим.
Разделение опасений сводит кодекс для каждой из этих проблем отдельно. Изменение интерфейса не требует изменения кода бизнес-логики и наоборот.
Шаблон проектирования Model-View-Controller (MVC) является прекрасным примером разделения этих проблем для лучшей ремонтопригодности программного обеспечения.
Для получения дополнительной информации:
Ответ 2
Вы знаете о HTML и CSS? Это разделение проблем прямо там.
HTML файл (возможно, XML) определяет структуру документа. Файл CSS определяет, как документ отображается на вашем экране.
Ответ 3
http://en.wikipedia.org/wiki/Separation_of_concerns
В информатике разделение проблем (SoC) - это процесс разбивки компьютерной программы на отдельные функции, которые как можно меньше перекрывают функциональность. Вызывает озабоченность любой интерес или фокус в программе. Как правило, проблемы являются синонимом функций или поведения. Прогресс в направлении SoC традиционно достигается посредством модульности и инкапсуляции с помощью скрытия информации.
Ответ 4
В википедии описано: http://en.wikipedia.org/wiki/Separation_of_concerns
Это значение, указанное в Принципе единой ответственности, что функция/класс/метод должна делать только одно. Чтобы он все это делал, делайте это хорошо и делайте это только.
В принципе, это означает, что вы не должны объединять свои идеи вместе в кусковую пасту, но вы должны четко отделять свои идеи от кода. Если вы этого не сделаете, сложно изменить, протестировать или отладить код. Если вы их отделите, то у вас есть свобода для изменения. Например, если вы настроите свой генератор html своим запросом, вам будет сложно изменить форматирование, и вам будет трудно переключиться на другой запрос. Если вы их отделите, то обе эти вещи станут легкими. Или проще, по крайней мере.
Ответ 5
Википедия:
В информатике разделение проблем (SoC) - это процесс разбивки компьютерной программы на отдельные функции, которые как можно меньше перекрывают функциональность. Вызывает озабоченность любой интерес или фокус в программе. Как правило, проблемы являются синонимом функций или поведения. Прогресс в направлении SoC традиционно достигается посредством модульности и инкапсуляции с помощью скрытия информации.
Я публикую это, чтобы не получить репутацию, но задаться вопросом, почему вы зададите вопрос, на который можно легко ответить.
Ответ 6
На самом деле не ответ на ваш вопрос, но если вас это интересует, существует связанный с ним шаблон проектирования Инверсия зависимостей.
Скажем, у вас есть класс с методом, на который нужно влиять вне класса, или вам нужно несколько его реализаций, или тот факт, что метод этого класса затрудняет модульное тестирование. Вы можете поместить этот метод в совершенно отдельный класс и передать экземпляр первого класса в качестве параметра.
Это особенно полезно при использовании макетных интерфейсов. Вы можете протестировать метод, передав mocks для другого класса с жестко закодированными значениями и ожидаемыми результатами.
Ответ 7
Этот принцип гласит, что данная проблема связана с различными проблемами, которые необходимо идентифицировать и разделять, чтобы справиться со сложностью, и для достижения требуемых технических характеристик качества, таких как надежность, адаптивность, ремонтопригодность и повторное использование. Ссылка
Ответ 8
Вообще говоря, это означает, что вы разделяете свое программное обеспечение на отдельные области, функциональность которых не перекрывается.
Википедия имеет хорошее объяснение:
Ответ 9
Данные могут быть представлены разными способами, и если мы можем перевести между представлениями, которые не имеют значения, какое представление мы используем, потому что мы должны иметь доступ к этим данным и манипулировать ими. Если бы у нас был универсальный переводчик языка, не имело бы значения, если бы кто-то сказал нам время на французском, немецком или арабском языках; наша способность переводить обеспечит нам знать время. В терминах данных есть три ключевых представления, которые важны: физическое представление того, где и как хранятся данные; логическое представление того, какие данные могут быть сохранены, его семантика и отношения с другими данными; и внешнее представление, каким оно представляется пользователям. Предполагая, что можно переводить между различными представлениями, люди позволяют понять и использовать данные по-своему. Таким образом, на физическом уровне техник базы данных сможет оптимизировать физическое хранение данных независимо от логического описания или внешнего описания при условии, что они скорректировали сохраненное описание и перевод между представлениями. Разделяя эти проблемы, становится возможным сбор коллекций общего назначения, которые могут использоваться разными пользователями с различными требованиями и которые используют разные представления без необходимости дублирования данных. Мы будем пересматривать эти характеристики на протяжении всего курса