В этой статье мы поговорим об унификации работы с атрибутами в проектах, написанных на C#.
Статья предназначена для разработчиков средних и крупных проектов или тех, кто интересуется темой проектирования систем.
Все примеры и реализации являются предварительными и предназначены для представления подходов или идей.
Введение
По мере роста проекта растет и количество различных типов атрибутов.В каждом конкретном случае разработчик выбирает удобный для него вариант обработки.
При большом количестве разработчиков подходы могут сильно различаться, что затрудняет понимание систем.
Типичными примерами использования атрибутов являются: различные типы сериализации, клонирование, привязка и тому подобное.
Для начала рассмотрим различные варианты использования атрибутов, распишем их плюсы и минусы, а после этого попробуем избавиться от минусов, реализовав некую обобщенную систему.
Типичные примеры
Связывание
Предположим, у нас есть некоторое описание пользовательского интерфейса (UI, Form) во внешнем источнике.Есть базовый класс Form, позволяющий загрузить описание и создать все необходимые элементы управления (виджеты, элементы управления, виджеты).
Пользователи формы наследуют класс Form и отмечают обязательные поля с помощью атрибутов.
Когда вы вызываете метод Initialise класса Form, созданные виджеты привязываются к полям класса-потомка.
Источник Описание класса виджета:
Описание класса атрибута:using System; public class Widget { }
using System;
[AttributeUsage(AttributeTargets.Field, AllowMultiple = false)]
public class WidgetNameAttribute : Attribute
{
Теги: #C++ #дизайн #рефакторинг #программирование #проектирование и рефакторинг #C++
-
И Ботаники Занимаются Бизнесом
19 Oct, 24 -
Об Агрессивном Офисе
19 Oct, 24 -
Fallout Онлайн Будет
19 Oct, 24