![]() |
Program to implementation супротив Program to interface
В книге ActionScript 3 Design Patterns автор рассматривает два подхода к ????, я пока не понял к чему эти два подхода (видимо к составлению композиции).
В общем Автор рассматривает два подхода Program to implementation и Program to interface Иллюстрируется это дело таким кодом Код:
//SpaceWarrior.asКод:
//Alien.asКод:
//Earthling.asКод:
//Main.asТак же автор говорит что в сферическом вакууме Program to implementation хуже чем Program to interface. вопросы 1. Чем подход Program to interface лучше другого. 2. В чём фишка каждого подхода ? 3. Чем чревато на практике использование каждого из подходов? 4. Кто из форумчан что предпочитает и почему. (мнение автора книги мне понятно, хотелось бы услышать альтернативные мнения) |
1. а в чём разница?
2. а в чём разница? 3. а в чём разница? 4. запретить автору книги писать книги. |
1. Ничем, они просто разные, зависит от конкретной задачи;
2. Второй позволяет в одной переменной хранить ссылки на любой объект, реализующий соответствующий интерфейс. Зато первый делает доступными остальные свойства конкретного экземпляра без обязательного каста; 3. Ничем; 4. И то и другое именно там, где оно подходит лучше. з. Ы. Я бы не стал читать книгу автора, который поленился поставить скобки при вызове конструкторов объектов. Да, можно опустить скобки, но лучше так не делать. |
__etc, ну да .. это болие развёрнуто :) особенно тонко подметил ЗЫ мой 4й пункт :D
|
Автора зовут William B. Sanders.
Он довольно много книг наваял. В часности еще книги про FMS2 и FMS3. У меня к его книжному творчеству двоякое отношение. С одной стороны, мне близок его способ мышления и желание объяснить все на простых примерах (это его фишка minimalist example, кстати на его блоге лучший такой экзэмпл по pureMVC). C другой стороны, книгу то тоже надо писать , контракты с издательствами, сроки и тд. И получается что 50-80 процентов его книг набиты гольной коньюктурой - пустое пересказывание очевидных вещей. Завтра посмотрю к чему эти два подхода, дома книжки нет. |
Код:
2. Второй позволяет в одной переменной хранить ссылки на любой объект, реализующий соответствующий интерфейс. |
Всё разбивается, когда нужно одновременно наследоваться от кого-то, и реализовывать дополнительный интерфейс. Единственный выход - самому прописать интерфейс того, от кого наследуешься. Я про Sprite говорю.
Если хочется унаследовать несколько классов от спрайта, и потом навесить на них общий интерфейс, то нифига не получится. Или получится, но на костылях. http://flasher.ru/forum/showthread.php?t=115336 |
Цитата:
|
| Часовой пояс GMT +4, время: 01:43. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.