Комментарии 5
В ходе разработки вполне может возникнуть ситуация, когда функционал какой-то из примесей не должен быть общедоступен для включения всеми классами.
Сходу не могу представить ситуацию, когда надо было бы запрещать использование примеси в любых классах. Мне здесь более полезной кажется возможность использовать методы базового класса в примеси:
abstract class Animal {
void run() {}
}
mixin SpeedRunner on Animal {
void speedRun() {
run();
run();
}
}
class Ostrich extends Animal with SpeedRunner {}
// Ostrich().speedRun();
Сходу не могу представить ситуацию, когда надо было бы запрещать использование примеси в любых классах
Допустим есть функционал какого-нибудь API, которое, как мы закладываем, может использоваться на уровне контроллеров или менеджеров, но не может быть в логике задач, тогда такое может пригодиться. Да я сейчас привел другую архитектуру совершенно, и в целом это абстрактный конь в вакууме, но это просто первый пришедший в голову пример.
Извиняюсь за редактирование ответа, нечайно отправил сразу после вставки цитаты.
Спасибо, Вы привели отличный пример. Полностью с ним согласен, я подобное использование указал в части применимости к Flutter.
Но ваш пример лучше иллюстрирует ситуацию с помощью кода, возможно мне стоило описать и этот случай при рассказе про ограничение с помощью on.
При желании мы даже можем вынести в примесь написанное и лишь требовать реализации метода builder с помощью интерфейса
Но ваш пример лучше иллюстрирует ситуацию с помощью кода, возможно мне стоило описать и этот случай при рассказе про ограничение с помощью on.
Ээммм… Примеси? Кто-то реально так называет миксины?
Да. На фирме, где я работаю вообще есть негласное правило, работающее даже для документации — если можно использовать русский термин, то лучше использовать его, за исключением полностью перешедших понятий. Да и сам я считаю так же, или было писать везде mixin или так же используемое понятие примесь. Мне последний вариант кажется даже более приемлемым, допустим человек вообще не имеет понятие о том, как они работают, увидев слово примесь подсознательно начинает понимать о чем идет речь, в случае mixin также, а вот увидев написание миксин получает дополнительное ограничение к восприятию.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Использование примесей во Flutter приложениях