Определение: Один объект должен сохранять наименьшее понимание других объектов.
Происхождение проблемы: чем ближе взаимосвязь между классами, тем больше степень связи и когда один класс меняется, тем больше влияние на другой класс.
Решение: минимизировать связь между классами как можно больше.
С тех пор, как мы начали изучать программирование, мы знали общие принципы программного программирования: низкая связь, высокая сплоченность. Независимо от того, является ли он ориентированным на процесс или объектно-ориентированным программированием, скорость повторного использования кода может быть улучшена только путем поддержания связи между каждым модулем как можно более низкой. Преимущества низкой связи являются самоочевидными, но как вы можете программировать для достижения низкой связи? Это именно то, чего будет достигнуть правило Dimit.
Закон Dimter, также известный как принцип наименьших знаний, был впервые предложен в 1987 году Яном Холландом из Северо -Восточного университета в Соединенных Штатах. С точки зрения непрофессионала, чем меньше вы знаете о классе, от которого зависит, тем лучше. Другими словами, для зависимого класса, независимо от того, насколько сложна логика, постарайтесь инкапсулировать логику внутри класса и не утечь никакой информации снаружи, кроме предоставленного публичного метода. Правило Dimit также имеет более простое определение: только общайтесь с прямыми друзьями. Во -первых, давайте объясним, что такое прямой друг: у каждого объекта будет связанную связь с другими объектами. Пока между этими двумя объектами существуют взаимосвязь связи, мы скажем, что эти два объекта - это друг друга. Существует много способов пары, таких как зависимость, ассоциация, комбинация, агрегация и т. Д. Среди них мы называем класс в переменной -члене, параметры метода и возвращаемое значение метода, которое появляется как прямые друзья, в то время как класс в локальной переменной не является прямым друзьями. Другими словами, лучше не появляться внутри класса в качестве локальной переменной.
Вот пример нарушения принципа Dimit:
Public Class Security {public void учитель (классы классов) {classe.getStudents.getScore.show (); }}
Каковы проблемы? Слишком высокая связь.
1. Класс счетов может быть отменен в классе учеников.
2. Метод шоу класса оценки также может быть удален.
Занятия учеников и классы оценки не знакомы с вами, и вы можете не знать, когда они меняются.
Мы можем изменить его на:
Public Class Seacher {public void учитель (классы классов) {classes.showscore (); }} открытые классы классов {public void showscore (студент студента) {student.showscore (); }} public Class Student {оценка оценки; public void showcore () {scord = new Barce (80); score.show (); }}
Суммировать:
1. Преимущество закона Димита состоит в том, чтобы уменьшить связь между классами.
2. Недостатком является то, что он будет производить более небольшие методы, делая систему более грязной, а эффективность связи будет снижена.
3. Приложения в режиме проектирования: режим фасада (режим фасада) и режим медиатора (режим медиатора).