2008-11-25 4 views
0

У меня есть класс, в моей модели домена называетсяКак конфертировать из родителя в ребенка?

JobPlan 

этот класс хранится/извлекается с помощью ОРМ и используются в различных местах.

Я создаю представление, в котором показан твилист этого класса, и treelist нуждается в этом классе для реализации определенного интерфейса (интерфейс происходит от сторонней библиотеки lib). Однако добавление интерфейса в класс JobPlan заставляет все сборки, которые используют этот класс, также ссылаться на сторонний элемент управления. Это не идеально.

Я имею в виду, имеющий

JobPlanPresenter 

что бы просто унаследовать JobPlan и реализовать методы для интерфейса. Это привело бы меня к вопросу о том, как затем преобразовать JobPlan (родительский) в дочерний объект JobPlanPresenter. Я мог бы, очевидно, создать класс трансформатора, который бы просто скопировал все поля из родительского класса в дочерний класс, но это кажется довольно уродливым взломом для меня, что также убьет все обновления исходных объектов и т. Д.

Считаете ли вы, что есть другой способ? Я что-то упустил?

ответ

1

Одним из решений было бы просто иметь JobPlanPresenter ссылку на JobPlan. Тогда JobPlanPresenter - это всего лишь обертка вещей вокруг JobPlan со ссылкой на рабочие поля JobPlan и JobPlan для детей JobPlanPresenter.

+0

спасибо. Это на самом деле аккуратная идея. Наверное, я был ослеплен наследованием, когда думал о проблеме. Еще раз спасибо. – 2008-11-25 12:06:41