Объектно-ориентированный дизайн изображения с помощью ImageList - PullRequest
0 голосов
/ 06 января 2011

Я делаю класс, который представляет и Image, а в Windows вы храните изображения в элементах управления ImageList. Этот класс будет использоваться для удобного добавления изображений в другие элементы управления, такие как ListViews или Buttons, или просто для рисования на экране. Мой вопрос: каков правильный дизайн для чего-то подобного? Должен ли каждый Image иметь свой собственный ImageList для одного изображения или класс Image должен иметь один гигантский ImageList для всех его экземпляров, или как? Я не знаю много о внутренностях классов Windows, поэтому я не знаю, насколько «тяжел» класс ImageList, но если он относительно недорогой, я склонялся к тому, что «каждый экземпляр имеет свой собственный список изображений». Что вы рекомендуете?

1 Ответ

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

Как правило, я бы порекомендовал что-то среднее.

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

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

Но, более конкретно, я не совсем уверен, почему вы рассматриваете создание класса изображений, которыйсодержит список изображений в первую очередь.Если вы не собираетесь хранить значки / курсоры или не хотите беспокоиться о масках, почему бы просто не инкапсулировать дескриптор в растровое изображение, представляющее изображение?Это то же самое, что вы все равно будете передавать в метод «Добавить» списка изображений.

...