DI Container на примере bottle.js
Это продолжение заметки Dependecy Injection Если же развить паттерн Service Locator и представить себе центральный объект, в котором мы будем регистрировать все сервисы и зависимости и в конечном итоге получать центральный объект который и становиться нашей программой то мы получим паттерн DI Container. Здесь я продемонстрирую работу с библиотекой bottle.js как с примером реализации этого паттерна. Если почитать документацию то, как мне показалось, самым обобщённым и понятным подходом будет использование Service Factory var bottlejs = require('bottlejs'); let bottle = bottlejs(); class PostDB { posts = []; save(post){ this.posts.push(post); } getPosts(){ return this.posts; } removePost(id){ this.posts = this.posts.filter(post => post.id !== id); } getPostsById(id){ return this.posts.filter(post => post.id === id); } getPostsByBlogId(id){ return this.posts.filter(post => post.blogId === id); } } class Po