Я читаю онлайн о проблемах с перекрестными сокращениями, так как я только что внедрил Log4j в свой код. Некоторые люди говорят, что использование AspectJ в порядке, в то время как другие указывают на то, что он нарушает функциональное программирование. Эти миксины являются решением Scala для решения задач перекрестной резки.Как справиться с перекрестными проблемами относится к способу Scala
Однако я сжимаю, когда думаю, что я продолжу черту к объекту/классу, который не связан с самим собой.
например. new Database with Logger
Здесь Logger
не имеет никакого отношения к Database
, но его как смешивать для обеспечения регистрации. Я бы предпочел сделать это с помощью Scala, поэтому я хочу узнать, что это значит для миксинов.
Может кто-нибудь, пожалуйста, покажите мне быстрый пример того, как это сделать в Скале?
Это то же самое, что и глобальная переменная в Java. И будет отрицать цель инъекции зависимости. –
Это определенно не то же самое, что глобальная переменная в Java, если у вас есть зависимости, которые вы хотите использовать в перекрестном решении, вы можете передать их как обычные или неявные параметры для метода сквозной резки. Нет ничего обязательного, чтобы Logging был singleton, это было сделано только таким образом, чтобы сделать пример кода кратким (и потому, что вы редко вводили регистратор). – johanandren
достаточно справедливо. Теперь я понимаю. –