Рассмотрим этот пример:
У меня есть сайт. Это позволяет пользователям создавать сообщения (может быть что угодно) и добавлять теги, которые описывают сообщение. В коде у меня есть два класса, которые представляют пост и теги. Давайте назовем эти классы Postи Tag.
Postзаботится о создании сообщений, удалении сообщений, обновлении сообщений и т. д.
Tagзаботится о создании тегов, удалении тегов, обновлении тегов и т. д.
Существует одна операция, которая отсутствует. Связывание тегов с постами. Я борюсь с тем, кто должен сделать эту операцию. Это может одинаково хорошо вписаться в любой класс.
С одной стороны, у Postкласса может быть функция, которая принимает Tagпараметр в качестве параметра, а затем сохраняет его в списке тегов. С другой стороны, Tagкласс может иметь функцию, которая принимает Postпараметр в качестве параметра и связывает Tagего с Post.
Выше приведен только пример моей проблемы. Я на самом деле сталкиваюсь с этим с несколькими классами, которые все похожи. Это может одинаково хорошо вписаться в обоих. Если не считать фактического включения функциональности в оба класса, какие соглашения или стили дизайна существуют, чтобы помочь мне решить эту проблему. Я предполагаю, что должно быть что-то не то, чтобы просто выбрать один?
Может быть, это правильное решение для обоих классов?