Встречается на собеседованиях • сегодня
Можно ли сделать Dependency Inversion на уровне всего проекта
Да, можно. Dependency Inversion Principle (DIP) можно применить на уровне всего проекта, используя паттерны вроде Dependency Injection (DI) или Inversion of Control (IoC).
Пример с DI контейнером (на React):
```tsx
// services.ts
export interface ApiService {
fetchData(): Promise;
}
export class RealApiService implements ApiService {
async fetchData() {
return fetch('/api/data');
}
}
// App.tsx
import { ApiService } from './services';
function App({ apiService }: { apiService: ApiService }) {
// Используем абстракцию, а не конкретную реализацию
const handleClick = async () => {
const data = await apiService.fetchData();
};
return ;
}
// index.tsx
import { RealApiService } from './services';
import { App } from './App';
const apiService = new RealApiService();
ReactDOM.render(
,
document.getElementById('root')
);
```
Ключевые моменты:
1. Абстракции (интерфейсы) определяют контракты
2. Реализации зависят от абстракций
3. Внедрение зависимостей происходит на верхнем уровне (composition root)

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы