Как избежать связывания объектов в ООП - PullRequest
0 голосов
/ 30 августа 2011

Я читал, что рекомендуется не связывать компоненты вместе, так как, если вы удалите часть, остальные могут работать неправильно.Тем не менее, я не вижу альтернативы связыванию объектов вместе при использовании их методов?

Скажем, у меня есть класс безопасности, который проверяет на вредоносный ввод, класс журналирования, который регистрирует ошибки, пользовательские сообщения и т. Д., И класс комментариев, которыйобрабатывает комментарии пользователей.

Теперь, если бы я захотел отсканировать входные данные, поступающие в класс комментариев, разве не было бы разумнее вызывать метод класса безопасности scanInput ()?Кроме того, если был обнаружен вредоносный ввод, не было бы хорошо, чтобы затем регистрировать это через класс ведения журнала 'saveDetails ()?

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

Я пытаюсь улучшить свой дизайн, но я не думаю, что делать каждый класс - это хорошая идея.(это также здравый смысл), так что мне действительно нужна голова, простая и понятная.Потратить часы на чтение об агрегации и композиции не очень помогли.

1 Ответ

1 голос
/ 30 августа 2011

Вы можете уменьшить свою зависимость от конкретных объектов, отделив интерфейс от реализации. Для этого вы можете использовать абстрактные классы или interface конструкции. См. Также внедрение зависимостей .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...