Как стать автором
Обновить

Комментарии 5

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

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


abstract class Animal {
  void run() {}
}

mixin SpeedRunner on Animal {
  void speedRun() {
    run();
    run();
  }
}

class Ostrich extends Animal with SpeedRunner {}

// Ostrich().speedRun();
Сходу не могу представить ситуацию, когда надо было бы запрещать использование примеси в любых классах


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

Извиняюсь за редактирование ответа, нечайно отправил сразу после вставки цитаты.
Спасибо, Вы привели отличный пример. Полностью с ним согласен, я подобное использование указал в части применимости к Flutter.

При желании мы даже можем вынести в примесь написанное и лишь требовать реализации метода builder с помощью интерфейса


Но ваш пример лучше иллюстрирует ситуацию с помощью кода, возможно мне стоило описать и этот случай при рассказе про ограничение с помощью on.
Ээммм… Примеси? Кто-то реально так называет миксины?
Да. На фирме, где я работаю вообще есть негласное правило, работающее даже для документации — если можно использовать русский термин, то лучше использовать его, за исключением полностью перешедших понятий. Да и сам я считаю так же, или было писать везде mixin или так же используемое понятие примесь. Мне последний вариант кажется даже более приемлемым, допустим человек вообще не имеет понятие о том, как они работают, увидев слово примесь подсознательно начинает понимать о чем идет речь, в случае mixin также, а вот увидев написание миксин получает дополнительное ограничение к восприятию.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории