2016-05-24 1 views
0

Я реализовал это простое приложение, показывающее различные алгоритмы сортировки в действии.Java: Лучшее поведение ООП для управления чертежами Wgets

enter image description here

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

ответ

0

(Этот вопрос может быть закрыт, потому что вы можете получить только субъективные ответы, но все равно ...)

Вашего Drawing класса отвечает за составление брусков на основе данных, предоставленных ему. Ему не нужно ничего знать о виджетах (классах?) Справа от экрана. Однако он должен знать, с какими данными он может работать, и должен каким-то образом указать это. В ООП вы используете интерфейс для определения этого контракта. В этом случае вы можете иметь интерфейс DrawingDataProvider с методом GetData (который возвращает данные в структуре, продиктованной классом Drawing).

Элементы управления справа можно затем реализовать интерфейс DrawingDataProvider с конкретным методом GetData возвращающегося элементы, как они упорядочены (предположительно классом третьей стороной, которая реализует алгоритмы) в структуре, диктуемого интерфейса. Чтобы собрать все вместе, вы строите класс Drawing, передавая эту реализацию в качестве ссылки.

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