«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Должны ли вы вводить зависимости в атрибуты?

Должны ли вы вводить зависимости в атрибуты?

Опубликовано в 2025-03-24
Просматривать:158

Should You Inject Dependencies into Attributes?

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

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

, следовательно, лучше избегать инъекции зависимости в атрибутах.

]

превосходные альтернативы:

] ]

    Passive Attributes (разделение данных и поведения):
  1. ] разместить метаданные атрибута из его связанной функциональности. ]

    создать выделенную услугу для обработки логики и ее зависимостей.
      ]
    • ]
    • ]
    • ]
    Humble Objects (Logic Extraction):
  2. ]

    ] переместить все логику атрибутов в пользовательскую службу. ]

    зарегистрируйте эту службу с помощью контейнера для инъекции зависимости.
      ]
    • Используйте методы атрибута в качестве простых каналов для разрешения и выполнения методов службы.
    • ]
    • ]
    • ]
    • ]
    предложенный подход:
]

Вариант 1, разделение данных и поведения, обычно приводит к более чистым конструкциям и более широкой применимости. Однако вариант 2 предоставляет более практичное решение в определенных контекстах. ]

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3