MVC-дизайн и отображение массивов с использованием Swing / Graphics в Java - PullRequest
0 голосов
/ 11 января 2011

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

Что меня долго интересовало, так это то, что еслишахматная доска представлена ​​массивом квадратов [8] [8], и я создаю метод для рисования квадрата и каким-то образом устанавливаю связь между этим методом и моделью квадратов. Буду ли я тогда волшебным образом иметь визуальную шахматную доску?

Я имею в виду, скажем, что квадрат имеет размер 10x10 пикселей. Означает ли это, что первый элемент (представленный квадратом) будет начинаться с (0, 0), второй элемент с (10, 0), элемент / квадратдевять в (0, 10) и т. д.?Когда я проверил Graphics2D, я заметил, что метод рисования прямоугольника требует координат x и y, что мне делать, если я хочу, чтобы позиция зависела от элемента массива?

Или мне придется написатьвниз по координатам каждого квадрата на доске?

Еще одна вещь, которая меня беспокоит, это [row] [column] или [column] [row]?Я использовал [column] [row] в моем коде, так как это кажется правильным, если вы думаете о нем как (x, y).Когда вы двигаетесь вверх и вниз, вы меняете строку, = y и т. Д.

Я пытался найти в Google, как найти MVC-дизайн, о чем думать, что делать, а что нет,и т.д. Единственное, что я знаю до сих пор, это то, что модель = логика данных, представление = графический интерфейс и управление = взаимодействие, вывод таков: я либо плохо гуглю, либо нет никакой полезной информации, предназначенной для начинающих, относительно MVC.

В основном я не очень понимаю связь между M, V и C.

Ответы [ 2 ]

1 голос
/ 11 января 2011

Итак, давайте уберем простой вопрос: что касается 2D-массивов, вам решать, будет ли это [строка] [столбец] или [столбец] [строка].Java не волнуетПока вы относитесь к нему последовательно во всем приложении, вы можете думать об этом любым способом, который имеет для вас наибольшее значение.Если это помогает (а может и нет), помните, что 2D-массив - это просто массив массивов.

Что касается MVC, я так думаю об этом: M - это модель данных (массив,например), V - это визуальное представление этих данных (отображается пользователю, возможно, в виде шахматной доски), а C - контроллер, который соединяет эти два и передает изменения одного в другое, переводя или иным образом интерпретируя действия пользователя по мере необходимости.,Если пользователь перетаскивает шахматную фигуру из одного квадрата в другой, Контроллер интерпретирует этот жест, реализует логику, которая решает, является ли маневр законным и какие побочные эффекты он может иметь (например, захват фигуры), и обновляет как модель, так ивид по мере необходимости.Путаница заключается в том, что большинство инструментариев пользовательского интерфейса, включая Java, часто стирают границы между этими частями, так что биты контроллера оказываются в представлении, или модели, или обоих.Это не обязательно проблема, но об этом нужно знать.Главное - постараться, насколько это возможно, сохранить четко определенную границу между данными, представлением и логикой, которая связывает их.

Чтобы ответить на ваш вопрос о чертеже и координатах, это действительно зависит от того, как вы реализуете свой шахматный интерфейс.Вы могли бы реализовать это полностью, например, с помощью Java Swing, и умело используя JLabels, JPanels и, возможно, GridLayout, или, возможно, даже JTable, вы могли бы (почти!) Иметь автоматически обновляемую шахматную доску.С другой стороны, вы можете реализовать свои собственные классы пользовательского интерфейса с нуля, используя Java2D и предоставляемые им примитивы рисования, а затем вам придется больше управлять координатами и тому подобным.

1 голос
/ 11 января 2011

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

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

То же, что если какая-то бизнес-логика объединяется с компонентами представления, то программисту трудно это понять, и для отделения этой логики от компонента VIEW требуется слишком много времени,так что любой программист может легко и быстро понять эту логику ... поэтому логика означает модель и проектирование означает, что любая часть графического интерфейса означает разделение компонента VIEW ...

Компонент Now Controller .. компонент .. поэтому компонент CONTROLLER обеспечивает мост междуэти два компонента модели и вида .. Менан решил, что какой вид может быть предоставлен конечному пользователю ... и он контролирует вид с помощью компонента модели .............

GOt .. IT ........ !!!! ...

ЕСЛИ есть предложения ... Ну что ж, приходите ...................

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...