2012-06-07 2 views
4

В моем .NET приложения, модель данных содержится в нескольких классах: вызов, телефон, подключениеРазработка модели для облегчения взаимодействия между объектами

Для каждого типа, у меня есть «управляющей» сущность (CallManager, PhoneManager и т. Д.).

Каждый тип реализует интерфейс, для того, чтобы иметь возможность переключаться реализации позже, или издеваться некоторые классы для целей тестирования:

public class CallManager : ICallManager 
public class PhoneManager : IPhoneManager 

Наконец, «мастер» объект имеет ссылку на каждый этих менеджеров и использует их для извлечения/обновления нужного экземпляра объекта (например, создания нового объекта вызова и его сохранения в CallManager, извлечения телефонного объекта из PhoneManager и т. д.).

Такой объект принимает на зависимости от каждого из этих типов:

public class AppManager 
{ 
    public AppManager(ICallManager callManager, IPhoneManager phoneManager, etc...) 
} 

Есть ли принцип конструкции или образец, который облегчает взаимодействие между различными объектами, чтобы облегчить на задаче сохранения данных правильно и обновлении , не имея плотного набора взаимосвязей между всеми этими объектами-менеджерами и не имея одного класса, который зависит от всех других классов?

+0

Так или иначе, класс AppManager будет зависеть от функциональности от 4 разных объектов, которые, в свою очередь, также взаимосвязаны. –

+0

+1 Отличный вопрос. Отличное использование интерфейсов, я бы добавил. – JDB

+0

Возможно, еще какой-нибудь код, чтобы показать, чего вы пытаетесь избежать? Класс AppManager, как контейнер для вашего приложения, необходим для хранения этих ссылок susbsytem, ​​и это нормально, если вы делаете это через интерфейсы. – tcarvin

ответ

4

По существу, похоже, что вы используете шаблон посредника. Но Посреднику все равно придется обращаться к экземплярам объектов.

http://en.wikipedia.org/wiki/Mediator_pattern

Похоже, у вас есть и уже реализовали шаблон Factory, но читать на ней может привести к некоторому вдохновению.

http://en.wikipedia.org/wiki/Factory_pattern

2

Другой вариант вы могли бы подумать об использовании является observer pattern. Это помогает уменьшить жесткие взаимосвязи между объектами. Вы обновляете объект, и это приводит к событию, и уведомление об этом событии уведомляет набор объектов, неизвестных исходным измененным объектам. Здесь нет сложной перекрестной связи. Только проводка объектов, необходимых сразу после создания этих объектов. Вы также можете обратиться к this article.

Смежные вопросы