Возможно, поздно, но мог бы помочь.
fab.setBackgroundTintList(ColorStateList.valueOf(Color
.parseColor("#33691E")));
и анализ фактического цветового кода из списка цветов . Вы можете найти здесь
.
Интерфейсы тегов используются в Java (очевидным примером является Serializable). C # и даже Java, похоже, отходят от этого, хотя в пользу атрибутов, которые могут делать то же самое, но также и гораздо больше.
Я все еще думаю, что для них есть место в других языках, у которых нет атрибута концепция .NET и Java.
ETA:
Вы обычно используете это, когда у вас есть интерфейс, который подразумевает реализацию, но вы не хотите, чтобы класс, реализующий интерфейс, действительно должен был предоставлять эту реализацию .
Некоторые примеры из реального мира:
Serializable - хороший пример - он подразумевает, что существует реализация (где-то), которая может сериализовать данные объекта, но поскольку для этого доступна универсальная реализация, нет необходимости, чтобы объект сам реализовывал эту функциональность.
Другим примером может быть система кэширования веб-страниц. Допустим, у вас есть объект «Страница» и объект «RequestHandler». RequestHandler принимает запрос на страницу, находит / создает соответствующий объект Page, вызывает метод Render () для объекта Page и отправляет результаты в браузер.
Теперь предположим, что вы хотели реализовать кэширование для отображаемых страниц . Но загвоздка в том, что некоторые страницы являются динамическими, поэтому их нельзя кэшировать. Один из способов реализовать это - реализовать кэшируемые объекты страницы с «теговым» интерфейсом ICacheable (или, наоборот, у вас может быть интерфейс INotCacheable). Затем RequestHandler проверит, реализована ли страница ICacheable, и если да,
Я бы назвал себя объектно-ориентированным программистом и никогда не слышал об интерфейсе тегов.
Интерфейсы In .Net Tag могут быть отличными для использования с методами отражения и расширения. Интерфейсы тегов обычно представляют собой интерфейсы без каких-либо методов. Они позволяют вам увидеть, относится ли объект к определенному типу, без риска отражения над вашими объектами.
Примеры в .Net Framework INamingContainer является частью ASP.Net
Я использовал тег несколько раз взаимодействует в объектной модели, представляющей базу данных SQL. В этих случаях это подтип корневого интерфейса для определенных типов объектов. Легче проверить интерфейс тега, чем атрибут ('obj is IInterface', а не с помощью отражения)
Я думаю, что интерфейсы тегов стоит обсудить, потому что они являются интересным угловым случаем концепции интерфейса. Однако стоит отметить их нечастое использование также !
В руководстве по стилю .NET говорится об использовании атрибутов , а не интерфейсов тегов / маркеров.
альтернативный текст http://www.freeimagehosting.net/uploads/th.4528577db5.jpg
Щелкните, чтобы увидеть полное изображение
источник: http://www.informit.com/articles/article .aspx? p = 423349 & seqNum = 6
или любое количество других точек воздействия рекомендаций Квалины, таких как книга.