Шаблон MVP с динамически создаваемым интерфейсом - PullRequest
1 голос
/ 22 августа 2009

использование шаблона MVP в winforms основывается на том, что докладчик знает, к каким элементам управления получить доступ, как определено в IViewInterface. например, если в вашей форме было 2 текстовых поля и одна кнопка, то вы бы определили интерфейс IViewInterface с двумя свойствами для текстового поля, а после события нажатия кнопки вы перенаправляете вызов Presenter, и докладчик может получить доступ к этим двум свойствам. Довольно просто Теперь представьте, построен ли ваш пользовательский интерфейс во время выполнения на основе таблиц в вашей базе данных. скажем, у вас есть 500 таблиц в вашей базе данных, и вы хотите разработать CRUD-приложения для этих 500 таблиц. скажем, где-то в вашей базе данных вы определяете, как вы хотите расположить эти 500 таблиц в вашем пользовательском интерфейсе. у вас есть одна программа, которая во время выполнения создает элементы управления пользовательского интерфейса для этих 500 таблиц. как вы применяете шаблон MVP в таких случаях ??

Ответы [ 3 ]

1 голос
/ 22 августа 2009

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

Если вы думаете, что у вас другой подход, просто попробуйте его и посмотрите, как он работает.

0 голосов
/ 12 сентября 2009

использование шаблона MVP в winforms основанный на ведущий зная о том, какие элементы управления для доступа как определяется IViewInterface

Верно, но в случае динамического графического интерфейса вам не нужно выставлять эти элементы управления индивидуально в качестве свойств интерфейса. Вы можете определить универсальный элемент управления как класс с некоторыми общими свойствами и представить список этих элементов управления как отдельное свойство вашего интерфейса представления.

Это только один из способов сделать это - дизайн зависит от точного сценария. Но в целом я бы сказал, что динамические графические интерфейсы даже лучше кандидатов для введения MVP, а не наоборот.

0 голосов
/ 22 августа 2009

Для этого докладчику вообще не нужно заботиться о контроле.

Представление может предоставлять эти данные в виде свойств. Если все эти 500 таблиц с 500 макетами пользовательского интерфейса используют хотя бы стандартный элемент управления отображением, такой как GridView, вы можете предоставить свойство «CurrentTableName» и один из «CurrentRow» для активной строки в GridView. Докладчик может принять их и передать или преобразовать в объекты DTO или DM в бизнес или сервисный уровень.

Это может или не может быть возможно в этом случае все же.

...