Image.FromFile
От: Аноним  
Дата: 18.11.09 16:36
Оценка:
Не вкурил, Image абстрактный класс, как он создаёт себя внутри статического метода — FromFile?
Re: Image.FromFile
От: Spiceman  
Дата: 18.11.09 16:39
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>Не вкурил, Image абстрактный класс, как он создаёт себя внутри статического метода — FromFile?

Полиморфизм, однако.
Re[2]: Image.FromFile
От: Аноним  
Дата: 18.11.09 16:50
Оценка:
Здравствуйте, Spiceman, Вы писали:

S>Здравствуйте, Аноним, Вы писали:


А>>Не вкурил, Image абстрактный класс, как он создаёт себя внутри статического метода — FromFile?

S>Полиморфизм, однако.

не совсем онял, причем тут полиморфизм, просто, насколько я знал, абстрактный класс создать нельзя, интерестно, как он там создаётся, внутри
Re[3]: Image.FromFile
От: Mr.Cat  
Дата: 18.11.09 16:53
Оценка: +1
Здравствуйте, Аноним, Вы писали:
А>не совсем онял, причем тут полиморфизм, просто, насколько я знал, абстрактный класс создать нельзя, интерестно, как он там создаётся, внутри
Создается экземпляр неабстрактного наследника от Image и возвращается как ссылка на Image.
Re[3]: Image.FromFile
От: MozgC США http://nightcoder.livejournal.com
Дата: 18.11.09 16:55
Оценка:
Здравствуйте, Аноним, Вы писали:

А>не совсем онял, причем тут полиморфизм, просто, насколько я знал, абстрактный класс создать нельзя, интерестно, как он там создаётся, внутри


Внутри создается не абстрактный класс, а Bitmap или Metafile, которые являются наследниками Image. Т.е. возвращается на самом деле объект типа Bitmap или Metafile.
Re[2]: Image.FromFile
От: Аноним  
Дата: 18.11.09 17:46
Оценка: +1
Здравствуйте, Spiceman, Вы писали:

S>Полиморфизм, однако.

Это — полиморфизм?
 switch (((ImageTypeEnum) type))
    {
        case ImageTypeEnum.Bitmap:
            return Bitmap.FromGDIplus(nativeImage);

        case ImageTypeEnum.Metafile:
            return Metafile.FromGDIplus(nativeImage);
    }

Ну на фиг.
Re[3]: Image.FromFile
От: HowardLovekraft  
Дата: 18.11.09 17:47
Оценка:
Забыл авторизоваться.
Рефлектор открывает глаза.
Re[3]: Image.FromFile
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 18.11.09 21:56
Оценка: +2
Здравствуйте, Аноним, Вы писали:

А>Это — полиморфизм?


А>Ну на фиг.


Это называется фабрика классов, точнее, фабричный метод.
[КУ] оккупировала армия.
Re[4]: Image.FromFile
От: Аноним  
Дата: 18.11.09 23:51
Оценка:
Здравствуйте, Mr.Cat, Вы писали:
MC>Создается экземпляр неабстрактного наследника от Image и возвращается как ссылка на Image.
Это, типа, нормально, когда базовый класс знает о наследниках?
Re[5]: Ну удобно же
От: ylem  
Дата: 19.11.09 00:21
Оценка: +1 :)
Кроме того, имхо, с его стороны в высшей степени лицемерием будет изображать неосведомленность о сожителях по сборке и нэймспэйсу.
Re[5]: Image.FromFile
От: MozgC США http://nightcoder.livejournal.com
Дата: 19.11.09 00:26
Оценка:
Здравствуйте, Аноним, Вы писали:

MC>>Создается экземпляр неабстрактного наследника от Image и возвращается как ссылка на Image.

А>Это, типа, нормально, когда базовый класс знает о наследниках?

А какие возможные проблемы от такой реализации вы видите в данном случае?
Re[6]: Image.FromFile
От: Мизантроп  
Дата: 19.11.09 04:36
Оценка:
Здравствуйте, MozgC, Вы писали:

MC>Здравствуйте, Аноним, Вы писали:


MC>>>Создается экземпляр неабстрактного наследника от Image и возвращается как ссылка на Image.

А>>Это, типа, нормально, когда базовый класс знает о наследниках?

MC>А какие возможные проблемы от такой реализации вы видите в данном случае?


Например нерасширяемость. По-моему, можно было сделать регистрацию соответствий типов изображений и фабричных делегатов, создающих инстансы потомков Image. Тогда можно было-бы регистрировать новых потомков и они сразу становились бы доступны через этот метод. Но возможно, у авторов были причины так не делать.
"Нормальные герои всегда идут в обход!"
Re[4]: Image.FromFile
От: HowardLovekraft  
Дата: 19.11.09 07:31
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Это ... фабричный метод.

Спс, в курсе.
Однако полиморфизмом я бы называть это не стал — зачем обманывать топикстартера?
Re[5]: Image.FromFile
От: Spiceman  
Дата: 19.11.09 07:38
Оценка: 1 (1)
Здравствуйте, HowardLovekraft, Вы писали:

HL>Однако полиморфизмом я бы называть это не стал — зачем обманывать топикстартера?


А как еще называется работа с классом через его базовый класс или интерфейс? Фабрика классов — это паттерн, а полиморфизм — это принцип ООП. Не надо путать понятия.
Re[6]: Image.FromFile
От: HowardLovekraft  
Дата: 19.11.09 08:06
Оценка:
Здравствуйте, Spiceman, Вы писали:

S>Фабрика классов — это паттерн, а полиморфизм — это принцип ООП

Фабричный метод — порождающий паттерн.
Полиморфизм — тоже паттерн, конкретней, паттерн поведения (см. GRASP).

В данном случае — фабричный метод в чистом виде.
Re[6]: Image.FromFile
От: Аноним  
Дата: 19.11.09 08:30
Оценка:
Здравствуйте, MozgC, Вы писали:
MC>А какие возможные проблемы от такой реализации вы видите в данном случае?
Ну, я не знаю, просто чуствую одним место, что, увеличивается свазанность кода, и уменьшается сципление.

Допустим, в реальном мире, который, собственно и должно описывать ООП (в моём понимании),
отец рождается раньше детей, дети могут и не родится, или умереть раньше, но, с другой стороны, если взять абстрактный мир (в данном случае мы его и описуем), где отец и дети рождаются и умирают вместе, то это, наверно, логично
Re[7]: Image.FromFile
От: Spiceman  
Дата: 19.11.09 08:32
Оценка:
Здравствуйте, HowardLovekraft, Вы писали:

HL>Полиморфизм — тоже паттерн, конкретней, паттерн поведения (см. GRASP).


Вы о чем??? Какой нахер паттерн???
Принципы ООП
Полиморфизм
Метод FromFile возвращал абстрактный класс. О конкретной реализации нам ничего не известно. Причем тут фабричный метод или какие-то еще паттерны? Мне абсолютно по барабану как и какой объект создается методом.
Re[7]: Image.FromFile
От: Spiceman  
Дата: 19.11.09 08:34
Оценка: :))
Здравствуйте, HowardLovekraft, Вы писали:

HL>Полиморфизм — тоже паттерн, конкретней, паттерн поведения (см. GRASP).

Инкапсуляция и наследование по вашему тоже паттерны?
Re[7]: Image.FromFile
От: Spiceman  
Дата: 19.11.09 08:36
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, MozgC, Вы писали:

MC>>А какие возможные проблемы от такой реализации вы видите в данном случае?
А>Ну, я не знаю, просто чуствую одним место, что, увеличивается свазанность кода, и уменьшается сципление.

Абсолютно правильно чувствуете. Никогда так не делайте. Ну по крайней мере без весомого обоснования.
Re[8]: Image.FromFile
От: HowardLovekraft  
Дата: 19.11.09 08:39
Оценка:
Здравствуйте, Spiceman, Вы писали:

S>Здравствуйте, HowardLovekraft, Вы писали:


HL>>Полиморфизм — тоже паттерн, конкретней, паттерн поведения (см. GRASP).


S>Какой нахер паттерн???

Полиморфизм.

P.S. Эмоции чуть-чуть убавьте.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.