Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Базарная площадь
  
О разделе

Основная страница

Группы обсуждений


Тематический каталог обсуждений

Архив

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  01:35[Войти] | [Зарегистрироваться]
Обсуждение темы:
Оберон-технология: особенности и перспективы


Тематика обсуждения: Оберон-технология. Особенности, перспективы, практическое применение. 

Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру


Всего в теме 6256 сообщений

Добавить свое сообщение

Отслеживать это обсуждение

Обсуждение из раздела
Школа ОБЕРОНА

<<<... | 3566—3557 | 3556—3547 | 3546—3537 | ...>>>
Всего сообщений в теме: 6256; страниц: 626; текущая страница: 271


№ 3556   26-03-2007 16:19 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 3555« (Jack Of Shadows)
___________________________

>>>Не понял, пример в студию.

Цитата (и пример с интернализацией/экстернализацией) из раздела 3 краткого руководства по ББ (входит в его поставку):
Implement-only export is a prime example of a feature motivated by typical framework design patterns. A record type's methods may be exported as implement-only, by using a dash instead of an asterisk. An implement-only method can only be called inside the defining module. But it can be implemented outside the defining module, in an implementation component of the framework. For example, the BlackBox Component Framework's store mechanism uses this feature to protect a store's Internalize and Externalize methods from being called out of their correct context. Basically, the framework (in this case the Stores module) uses the implement-only methods in all possible legal ways (i.e., implements all legal kinds of use-cases), and only exports them for implementation purposes.
 AVC


№ 3555   26-03-2007 15:51 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 3554« (AVC)
___________________________
Не понял, пример в студию.


№ 3554   26-03-2007 15:50 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 3552« (Jack Of Shadows)
___________________________

>>>Ну а вот теперь и расскажите нам на примере простенького доступа к одному единственному полю SSN, как же вам тут модульность оберона поможет ?

Думается, здесь неплохо сработают т.н. implement-only методы КП.
 AVC


№ 3553   26-03-2007 15:48 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 3540« (Axcel)
___________________________
>>>Есть противоречие между наследованием реализации в ООП и необходимостью отчуждения программного продукта с последующим его развитием.
Пожалуй правильно. Вот только в сложных задачах невозможно отчуждение программного продукта "в пользу" безграмотного пользователя/программиста.
Я уже говорил о том, что считаю ООП инструментом системного аналитика. Не больше, но и не меньше.
Я отнюдь не сторонник того, чтобы все программы делались на основе ОО подхода с наследованием по реализации. Но своя ниша у такого подхода есть.


№ 3552   26-03-2007 15:38 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 3549« (Илья Ермаков)
___________________________
Приведу пример очень маленькой задачи, которая плохо решается средствами ООП, но хорошо аспектами.
Часто надо бывает показыват данные полностьЮ частично или не показывать вообще в зависимости от уровня доступа пользователя. Например поле Social Securty Number.
Полный доступ - показывать 123-45-7892
Частичный доступ, показывать только последние 4 цифры: XXX-XX-7892
Нет доступа не показывать вообще: XXX-XX-XXX

Если делать средствами ООП, то можно конечно прямо в обьект, в котором содержится это поле, забить логику.
Но тогда либо придется передавать обьекту права доступа пользователя, либо передавать ему id пользователя и пусть обьект сам выясняет его права, либо пусть читает права пользователя с глобальной переменной.
В любом случае это получается каша. Данные не должны заботиться о такой фигне как кто их смотрит.

Второй вариант - проверять на местах, то есть везде ставить эти if-ы и надеяться что в будущем новый программист, не забудет это сделать.
Тоже хреновый способ.

А с аспектами весьма удобно, и главное МОДУЛЬНО. То есть код отвечающий за проверку доступа не перемешивается ни с обьектами хранящики данные, ни с кодом, выдающим эти данные пользователю.
Просто при каждом обращении к полю SSN, за сценой вызывается функция проверки доступа, которая перехватывает чтение поля, и заменяет данные в соответствии с правами доступа.
Таки образом обьекты, хранящие данные на забиваются всякой не относящейся к ним машинерией, Так же как и код вывлжа информации. Да и безопасность на уровне. Будущий новичок программист может совершенно спокойно бросать это поле на экран, не боясь, что он что то кому то не то покажет.

Это очень маленький пример. В реальности, правила доступа невероятно сложны и зависят от множетсва параметров. Да к тому же и переплетены так что никак их отдельно в ООП системе не опишешь.

Ну а вот теперь и расскажите нам на примере простенького доступа к одному единственному полю SSN, как же вам тут модульность оберона поможет ?


№ 3551   26-03-2007 15:18 Ответить на это сообщение Ответить на это сообщение с цитированием
>>> никто не ставит на одну машину и дизель, и карбюраторный двигатель; и колеса,
>>> и гусеницы, и крылья, и понтоны.

Абрамс, например, имеет и турбину и дизель и гидро- и электропривод.
Гусеницы без колес - так это ж разве шагающий экскаватор :)
Шведский танк есть - трансформируется в понтон - забавное решение.
Сканер-принтер-копиры и смартфоны вытесняют специализированные устройства.
Развитая техника довольно универсальна. Так что неудачная аналогия.

Другое дело модульность. За счёт применения модульности время обслуживания
движка Абрамса было сокращено с 4 часов до 30 минут!


№ 3550   26-03-2007 14:47 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 3549« (Илья Ермаков)
___________________________
В свете поднятой роблемы, как она будет решаться по другому нежели в mainstream ООП языках ?


№ 3549   26-03-2007 14:45 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 3543« (Jack Of Shadows)
___________________________

Ответ на »сообщение 3542« (slava)
В третьих, может есть альтернативное решение? Может в Оберон-системах, это решается по-другому?
А что уже есть какое то отдельное Оберон-программирование, которое в принципе отличается от ООП ?

Эх, Джек, как Вы невнимательны к чему-либо, что обсуждается за пределами ФП :-)
Сотни сообщений на тему кластерно-модульного проектирования как альтернативы ООП были, увы, напрасны :-)


№ 3548   Удалено модератором


№ 3547   Удалено модератором


<<<... | 3566—3557 | 3556—3547 | 3546—3537 | ...>>>
Всего сообщений в теме: 6256; страниц: 626; текущая страница: 271


Добавить свое сообщение

Отслеживать это обсуждение

Дополнительная навигация:
Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру
  
Время на сайте: GMT минус 5 часов

Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
Функция может не работать в некоторых версиях броузеров.

Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

 
© При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
Все используемые на сайте торговые марки являются собственностью их производителей.

Яндекс цитирования