2015-09-24 2 views
2

Я знаю, что эта тема, возможно, обсуждалась здесь относительно создания аннотаций java, которые имеют логические функции и выполняют конкретные действия на основе условий.Java Annotations Logic

Одним из известных примеров, конечно же, является юнит и спящий режим.

Я также видел аннотации о том, что при размещении на api контроллера веб-службы он проверяет заголовок для токена аутентификации, и если пользователь не авторизовался, он будет возвращен неавторизованный и даже не войдет в этот api.

Также я видел библиотеку андроидов, которая выполняет большую часть обычной логики приложения с аннотациями: http://androidannotations.org/.

Теперь все учебники, которые я видел в Интернете по этой теме, не дают ясных примеров того, как реализовать его с наименьшим кодом, и в конце концов я найду лишний код, который противоречит основной цели используя аннотации с логикой, которая экономит время при написании большего количества кода.

Возьмите, например, в этой ссылке http://androidannotations.org/

@NoTitle 

эквивалентно

requestWindowFeature(Window.FEATURE_NO_TITLE); 

в этом примере они, похоже, просто вводят свою библиотеку аннотаций, они не изменили любую другую вещь или добавлены любой дополнительный код, например, изменение базового класса, который является активностью.

Являются ли вещи слишком абстрактными?

И если да, то как я могу достичь этого уровня абстракции, чтобы сделать что-то вроде андроидной библиотеки, упомянутой выше.

Любые шаблоны дизайна, рекомендованные для этого?

+0

Могу ли я рекомендовать слово «полезно» вместо «функционального», что теперь означает очень специфическую вещь, которая полна лямбда? –

+0

Я думаю, что я получил вас, так как есть функциональная аннотация интерфейса в java 8 @EdwinBuck – user2469133

+0

или я понял, что вы ошибаетесь? ... но я до сих пор не понимаю, что вы подразумеваете под «очень специфической вещью, которая полна лямбда?» @EdwinBuck – user2469133

ответ

0

Пример, который вы упоминали, т. Е. http://androidannotations.org/ - фактически хорошая реализация аннотаций.

В вашем примере среда выполнения Android должна назначать значения свойствам (объектам) во время выполнения на основе указанной аннотации. Методы также могут быть подобраны для выполнения на основе аннотаций, указанных на них.

Аннотации - простая, но мощная концепция Java. Вы можете значительно упростить использование своего api.

Отметьте это сообщение https://devcompass.com/2016/05/08/java-annotations-converting-java-objects-to-excel-data/ для получения информации о том, как создавать аннотации с начала. Проверьте исходный код zip-файла в конце страницы.

Поверьте мне, аннотации очень просты в освоении, и они могут существенно повлиять на реализацию исходного кода.