Передача объектов между объектами - PullRequest
1 голос
/ 08 июля 2011

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

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

Ответы [ 4 ]

2 голосов
/ 08 июля 2011

Прежде чем приступить к чтению определенных шаблонов проектирования объектов, следует начать с чтения шаблона MVC (Model View Controller).Это, вероятно, наиболее часто используемый шаблон архитектуры, и поиск в Google принесет тонны хорошего материала (в этом случае Wikipedia даже подойдет для начала)

Он используется для решения проблемы, которую вы 'Мы намекали на то, что ваша различная логика отображения должна часто обращаться к одной и той же логике хранения информации.В приложении, которое использует архитектуру MVC, ваш код (более или менее) разделен на три категории, код, который отображает информацию в пользовательском интерфейсе, код, который содержит (или моделирует) информацию, и код, который контролирует поток приложения и приложенияСобытия.В приложениях MVC обычно используются слушатели и другие шаблоны разработки событий, например, упомянутые выше.

1 голос
/ 08 июля 2011

Я бы предложил внедрение зависимостей, там много фреймворков. Мой любимый - хитрый, но YMMV.

1 голос
/ 08 июля 2011

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

public interface GUIBehavior {

}

// Набор классов

public behavior1 implementse GUIBehavior...

// В предложениях, отображающих информацию, просто задайте атрибут для поведения

private GUIBehavior myCurrentBehavior;
1 голос
/ 08 июля 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...