Как минимум, создав IStorage вы реализовали паттерн Service Locator. Который является анти паттерном, потому что теперь любой контроллер будет получать доступ ко всем репозиториям, а не только к выбранным. Это отличный способ создать контроллеры, которые будут делать слишком много работы.
Еще и реализовали как-то странно. Зачем там рефлексия с активатором, когда можно просто сделать new T()?
Поздравляю, вы изобрели анти-паттерн Service Locator. Теперь вместо трех зависимостей у IWorker'а вы получили потенциальную зависимость на все объекты, которые предоставляет RepositoryFactory. И, если раньше вас могло насторожить, что у IWorker'а появилось слишком много зависимостей, и он начинает нарушать single responsibility principle, то теперь вы это не заметите так легко.
Мне стоило больших усилий избавиться от этой RepositoryFactory в одном из предыдущих проектов, в котором из-за него все зависимости совершенно размылись по коду.
Это не говоря об упомянутой выше неочевидности зависимостей при написании юнит тестов.
При аналогичном железе мой nexus one совсем не может похвастаться такой плавностью интерфейса и отсутствием подтормаживания. Так что это не было бы странно.
Sennheiser PX 210 BT, если я не путаю. Но у нее еще есть несколько моделей-близнецов, и у всех у них, кажется, есть шнур, от которого они работают без заряда аккумулятора.
Я купил себе почти такие же, только модель SHB 9001.
У них есть большие недостатки:
1) Кнопки слишком легко нажимаются. Если снять включенные наушники, и повесить на шею, то кнопки нажимаются просто от касания воротника куртки при ходьбе. А учитывая, что двойное нажатие включает функцию перезвон на последний номер, это особенно неприятно.
2) Чтобы их выключить, нужно держать кнопку выключения четыре секунды. Это довольно быстро начинает надоедать, если ты постоянно слушаешь музыку в пути. Особенно это неприятно из-за проблемы номер один. Потому что не выключая, их лучше на шею не вешать.
3) Корпус очень некачественный. Ощущение какого-то дешевого пластика. При быстрой ходьбе иногда крепления ушей постукивают. И приходится регулировать аккуратнее длину дуг, чтобы стук прекратился.
4) Устаревший разъем mini-usb. На современных смартфонах делают micro-usb, и приходится держать по два шнура везде (на работе, дома).
Еще и реализовали как-то странно. Зачем там рефлексия с активатором, когда можно просто сделать new T()?
Мне стоило больших усилий избавиться от этой RepositoryFactory в одном из предыдущих проектов, в котором из-за него все зависимости совершенно размылись по коду.
Это не говоря об упомянутой выше неочевидности зависимостей при написании юнит тестов.
Я описал результат. Все остальное технически подкованный человек за три минуты может найти в гугле.
У них есть большие недостатки:
1) Кнопки слишком легко нажимаются. Если снять включенные наушники, и повесить на шею, то кнопки нажимаются просто от касания воротника куртки при ходьбе. А учитывая, что двойное нажатие включает функцию перезвон на последний номер, это особенно неприятно.
2) Чтобы их выключить, нужно держать кнопку выключения четыре секунды. Это довольно быстро начинает надоедать, если ты постоянно слушаешь музыку в пути. Особенно это неприятно из-за проблемы номер один. Потому что не выключая, их лучше на шею не вешать.
3) Корпус очень некачественный. Ощущение какого-то дешевого пластика. При быстрой ходьбе иногда крепления ушей постукивают. И приходится регулировать аккуратнее длину дуг, чтобы стук прекратился.
4) Устаревший разъем mini-usb. На современных смартфонах делают micro-usb, и приходится держать по два шнура везде (на работе, дома).