Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flasher.ru > Флейм

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.09.2008, 15:59
CEBEP вне форума Посмотреть профиль Отправить личное сообщение для CEBEP Посетить домашнюю страницу CEBEP Найти все сообщения от CEBEP
  № 11  
Ответить с цитированием
CEBEP
 
Аватар для CEBEP

Регистрация: Nov 2006
Сообщений: 688
Отправить сообщение для CEBEP с помощью ICQ Отправить сообщение для CEBEP с помощью Skype™
Ну возьмём к примеру создание Меню для сайта.

Хороший ООП, я думаю это такой, в данном случае:
Код можно использвать для создание разных меню без особых дороботок, все части кода по созданию менюшек и сабменюшек к друг другу не лезут, данные хранятся в xml и доступны для изменения структуры, не должна быть проблема создания меню как горизонтально и вертикально и т.д. что то вроде такого...
__________________
"I am the terror that flaps in the night…!"

Старый 19.09.2008, 16:04
Nemo_c вне форума Посмотреть профиль Отправить личное сообщение для Nemo_c Найти все сообщения от Nemo_c
  № 12  
Ответить с цитированием
Nemo_c
 
Аватар для Nemo_c

Регистрация: Jan 2008
Сообщений: 221
to wvxvw
Из книги "ActionScript 3.0 Design Patterns"
Код:
package
{
//This is BAD OOP -- No encapsulation
import flash.text.TextField;
import flash.display.Sprite;
public class NoEncap extends Sprite
{
public var dogTalk:String="Woof, woof!";
public var textFld:TextField=new TextField( );
public function NoEncap( )
{
addChild(textFld);
textFld.x=100;
textFld.y=100;
}
function showDogTalk( )
{
textFld.text=dogTalk;
}
}
}
Код:
package
{
//This is GOOD OOP -- It has encapsulation
import flash.text.TextField;
import flash.display.Sprite;
public class Encap extends Sprite
{
private var dogTalk:String="Woof, woof!";
private var textFld:TextField=new TextField( );
public function Encap( )
{
addChild(textFld);
textFld.x=100;
textFld.y=100;
}
function showDogTalk( )
{
textFld.text=dogTalk;
}
}
}
William Sanders и Chandima Cumaranatunge видимо не знакомы с вашей концепцией и поэтому пишут всякую "чушь" в своей книге.

to CEBEP.
Нужны критерии в терминах ООП и AS3(как то так), а своими словами вы сейчас говорите абстрактно.


Последний раз редактировалось Nemo_c; 19.09.2008 в 16:18.
Старый 19.09.2008, 16:09
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 13  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
>> William Sanders и Chandima Cumaranatunge видимо не знакомы с вашей концепцией и поэтому пишут всякую "чушь" в своей книге.

Именно так.

Да, и кавычки к чушь абсолютно ни к чему.
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 19.09.2008 в 16:12.
Старый 19.09.2008, 16:10
Chas вне форума Посмотреть профиль Отправить личное сообщение для Chas Посетить домашнюю страницу Chas Найти все сообщения от Chas
  № 14  
Ответить с цитированием
Chas
[+1 14.08.08]
[+1 20.08.08]
 
Аватар для Chas

Регистрация: Sep 2002
Адрес: simferopol
Сообщений: 981
Отправить сообщение для Chas с помощью ICQ
чё-то или я тупой, или приведенный выше код отличается только именем класса и конструктора о_О
добавлено
а, господи, нада кофе выпить, свойства сделал приватными. Но это не лучший пример инкапсуляции. Это как раз тот случай, когда "инкапсуляция ради инкапсуляции"
__________________
~
Never trouble trouble till trouble troubles you!


Последний раз редактировалось Chas; 19.09.2008 в 16:22.
Старый 19.09.2008, 16:20
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 15  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Не, это они пытались показать пример инкапсуляции... при этом наломав столько дров, что глядя на такой код, думается, что есть люди, которым лучше все-таки читать книги, а не писать их =)
__________________
Hell is the possibility of sanity

Старый 19.09.2008, 16:30
Chas вне форума Посмотреть профиль Отправить личное сообщение для Chas Посетить домашнюю страницу Chas Найти все сообщения от Chas
  № 16  
Ответить с цитированием
Chas
[+1 14.08.08]
[+1 20.08.08]
 
Аватар для Chas

Регистрация: Sep 2002
Адрес: simferopol
Сообщений: 981
Отправить сообщение для Chas с помощью ICQ
Ну это ты перебарщиваешь. Где там дрова-то?
Как пример инкапсуляции - пример плохой. Нужно было что-то с геттерами и сеттерами придумать, где необходимо спрятать переменную, которую сеттер меняет, чтобы ее не трогали.
А так - обычный код, где там дрова-то? То, что showDogTalk не public функция?
__________________
~
Never trouble trouble till trouble troubles you!

Старый 19.09.2008, 16:37
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 17  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Нет явного вызова super()
У метода отсутствует модификатор доступа / неймспейс.
У метода отстутствует возвращаемый тип.
Приватные переменные - это первый шаг на пути усложнения реюз / полиморфизма, в этом примере они должны были быть protected. (т.е. показав пример одного из принципов ООП тут же забили на остальные - офигительный мануал...)

Помоему, этого достаточно, чтобы закрыть эту книжку, и почитать чего-нибудь другое =)

ЗЫ. И вообще, классный мануал, если ты его просто копипастишь, компилируешь, и компилятор тебе ворнинг выдает? И это в двух с половиной строчках, чего ж там дальше-то будет? =)
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 19.09.2008 в 16:41.
Старый 19.09.2008, 16:38
Nemo_c вне форума Посмотреть профиль Отправить личное сообщение для Nemo_c Найти все сообщения от Nemo_c
  № 18  
Ответить с цитированием
Nemo_c
 
Аватар для Nemo_c

Регистрация: Jan 2008
Сообщений: 221
Цитата:
при этом наломав столько дров, что глядя на такой код, думается, что есть люди, которым лучше все-таки читать книги, а не писать их =)
АГА, Значит плохой ООП код всё таки существует? как и существует плохой третий закон Ньютона.
Где в приведённом мною примере дрова наломаны? И как вы это определили?

Цитата:
показав пример одного из принципов ООП тут же забили на остальные
не, про остальные они пишут дальше.. это пример из начала книги.


Последний раз редактировалось Nemo_c; 19.09.2008 в 16:43.
Старый 19.09.2008, 16:42
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 19  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Существует плохо написаный код - вы только что запостили 2 примера. А ООП это понятие, которое нельзя характеризовать с позиций дуализма - оно не на столько комплексное.
__________________
Hell is the possibility of sanity

Старый 19.09.2008, 16:48
Chas вне форума Посмотреть профиль Отправить личное сообщение для Chas Посетить домашнюю страницу Chas Найти все сообщения от Chas
  № 20  
Ответить с цитированием
Chas
[+1 14.08.08]
[+1 20.08.08]
 
Аватар для Chas

Регистрация: Sep 2002
Адрес: simferopol
Сообщений: 981
Отправить сообщение для Chas с помощью ICQ
Цитата:
Приватные переменные - это первый шаг на пути усложнения реюз / полиморфизма, в этом примере они должны были быть protected. (т.е. показав пример одного из принципов ООП тут же забили на остальные - офигительный мануал...)
ну это не аргумент, это зависит от целей. Может он в этом случае именно хотел запретить детям видеть свойство.
Цитата:
У метода отсутствует модификатор доступа / неймспейс.
ну это тоже не аргумент. Он же не собственную библиотеку пишет, а простой пример.
Все остальное - да. Но вообще я, походу,сам плохой ООП-программер, потому что частенько эти вещи опускаю из-за лени. Следствие небольших проектов, которые пишу обычно исключительно один.
__________________
~
Never trouble trouble till trouble troubles you!

Создать новую тему Ответ Часовой пояс GMT +4, время: 11:43.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 11:43.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.