Ищите мнения об этом:OO Design Вопрос
Я разбил различные обязанности на отдельные объекты. Однако многие из этих объектов имеют зависимости друг от друга. Все эти объекты придерживаются интерфейсов, поэтому я не привязан к реализации. Меня беспокоят зависимости между объектами и потенциал для круговых зависимостей. Является ли это симптомом плохого дизайна? Что сделали другие люди для разделения обязанностей и управления зависимостями? Благодарю.
одна вещь, которую вы не хотите делать, - это слишком много интерфейсов, где логически только одна реализация, она будет запутывать ваш код, когда вы попытаетесь и будете поддерживать. (думаю, что нужно управлять файлами заголовков в C/C++). Каждый раз, когда вы добавляете свойство или метод в iterface, вы должны обращаться ко всем классам реализации и обеспечивать реализацию. Это действительно очень грязно, даже с хорошей рефакторинговой IDE, такой как Intellij IDEA. –
@TheNoob: вы принимаете ссылки на объекты во время выполнения, а не на зависимости классов? Вы говорите, что объекты прилипают к интерфейсам, что отлично, поэтому классы должны зависеть только от интерфейсов, поэтому не должно быть круговых зависимостей. Однако во время выполнения вы можете легко получить круговые ссылки - это то, что вы имеете в виду? – quamrana
По круговым зависимостям я имел в виду, что класс А зависит от класса В, а класс В зависит от класса А. Каждый из них состоит из экземпляра другого. – 2010-02-12 15:56:34