Здравствуйте, dshe, Вы писали:
D>AspectJ sample code...
Это очень интересные примеры, но, к сожалению, не слишком внятные (используется неизвестное мне ключевое слово aspect плюс разные добавки под соусом неизвестного мне синтаксиса, где остается только гадать что этот код делает и как его понимает компилятор).
Хотелось бы видеть здесь (на форуме), ответ в виде куска кода с необходимыми пояснениями к нему (как работает). Лучше, если такой пример будет написан в стиле "for Dummies".
... << RSDN@Home 1.1.4 @@subversion >>
^__^
Re[6]: Простейшая программа с реальным использованием паради
Здравствуйте, AndrewVK, Вы писали:
AVK>Отнюдь. Проверка прав это самый натуральный аспект. Декларативное задание проверки прекрасный пример реализации принципов АОП.
Декларативное задание — это еще не АОП. АОП — это способ решения проблем, а не результат их решения. Решание проблем в языке — это всего лишь решение проблем в языке. Ну, а АОП технология универсальная.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Простейшая программа с реальным использованием парадигмы
EG>Каюсь, Aspect C++, Aspect Java и др. не смотрел, но все же очень интересно узнать: как ЭТО выглядит на практике (ау, есть практики АОП?)? Хотелось бы, возможно не только мне, пример простейшей программы построенной на парадигме АОП, причем такой, чтобы сразу было видно, понятно и чувствовались практические плюсы реализации. Кто может?
Ну, насколько я понимаю, Spring (MVC pattern based framwework) является примером АОП. Во всяком случае, так написанно тут: http://www-106.ibm.com/developerworks/library/j-hibern/?ca=dnt-515 и тут http://www.springframework.org/docs/reference/aop.html
Вот, а Spring — классный fw, удобный =))
Re[2]: Простейшая программа с реальным использованием паради
Здравствуйте, AndrewVK, Вы писали:
AVK>Тебе именно пример универсального АОП-фреймворка или вобще использование? Если второе то вот к примеру нетовский декларативный CAS:...
Это не АОП. Это декларативное программирование, но не АОП.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Простейшая программа с реальным использованием паради
Каюсь, Aspect C++, Aspect Java и др. не смотрел, но все же очень интересно узнать: как ЭТО выглядит на практике (ау, есть практики АОП?)? Хотелось бы, возможно не только мне, пример простейшей программы построенной на парадигме АОП, причем такой, чтобы сразу было видно, понятно и чувствовались практические плюсы реализации. Кто может?
... << RSDN@Home 1.1.4 @@subversion >>
^__^
Re: Простейшая программа с реальным использованием парадигмы
EyeGem -> Простейшая программа с реальным использованием парадигмы АОП
E> Каюсь, Aspect C++, Aspect Java и др. не смотрел, но все же очень E> интересно узнать: как ЭТО выглядит на практике (ау, есть практики E> АОП?)? Хотелось бы, возможно не только мне, пример простейшей E> программы построенной на парадигме АОП, причем такой, чтобы сразу E> было видно, понятно и чувствовались практические плюсы реализации. E> Кто может?
EG>Каюсь, Aspect C++, Aspect Java и др. не смотрел, но все же очень интересно узнать: как ЭТО выглядит на практике (ау, есть практики АОП?)? Хотелось бы, возможно не только мне, пример простейшей программы построенной на парадигме АОП, причем такой, чтобы сразу было видно, понятно и чувствовались практические плюсы реализации. Кто может?
Здравствуйте, EyeGem, Вы писали:
EG>Каюсь, Aspect C++, Aspect Java и др. не смотрел, но все же очень интересно узнать: как ЭТО выглядит на практике (ау, есть практики АОП?)? Хотелось бы, возможно не только мне, пример простейшей программы построенной на парадигме АОП, причем такой, чтобы сразу было видно, понятно и чувствовались практические плюсы реализации. Кто может?
Тебе именно пример универсального АОП-фреймворка или вобще использование? Если второе то вот к примеру нетовский декларативный CAS:
[PrincipalPermissionAttribute(SecurityAction.Demand, Authenticated=true)]
public class RemoteClass
{
public void DoSomeWork() {...}
public void DoAnotherWork() {...}
[PrincipalPermissionAttribute(SecurityAction.Demand, Role="Administrator")]
public void DoAdminAction() {...}
}
А вот аналог, но без АОП:
public class RemoteClass
{
public void DoSomeWork()
{
PrincipalPermission perm = new PrincipalPermission(null, null, true);
perm.Demand();
...
}
public void DoAnotherWork()
{
PrincipalPermission perm = new PrincipalPermission(null, null, true);
perm.Demand();
...
}
public void DoAdminAction()
{
PrincipalPermission perm1 = new PrincipalPermission(null, null, true);
PrincipalPermission perm2 = new PrincipalPermission(null, "Administrator", true);
perm1.Union(perm2).Demand();
...
}
}
Здравствуйте, AndrewVK, Вы писали:
AVK>... AVK>Идея понятна?
Не очень... В частности не ясно, с какой стати части выделенные в квадратные скобки заполнены именно таким содержанием (кто вдруг придумал такой атрибут — PrincipalPermissionAttribute, а любой свой можно?) и почему это вдруг оказывает именно такое воздействие на результат (где-как-почему прописано, кем, зачем, кто такой решил что так правильно, как расширяется), иначе не ясно как оно на самом деле работает.
... << RSDN@Home 1.1.4 @@subversion >>
^__^
Re[3]: Простейшая программа с реальным использованием паради
Здравствуйте, EyeGem, Вы писали:
EG>Не очень... В частности не ясно, с какой стати части выделенные в квадратные скобки заполнены именно таким содержанием
Не понял вопроса.
EG> (кто вдруг придумал такой атрибут — PrincipalPermissionAttribute, а любой свой можно?
Можно.
EG>) и почему это вдруг оказывает именно такое воздействие на результат
Потому что так устроен компилятор
EG> (где-как-почему прописано,
MSDN
EG> кем,
Microsoft
EG> зачем,
Чтобы денег заработать
EG> кто такой решил что так правильно,
Архитектор из МС. Как зовут не знаю.
EG> как расширяется),
Созданием своих пермишенов и атрибутов.
EG> иначе не ясно как оно на самом деле работает.
Так и работает — JIT преобразует первый вариант во второй.