Как сохранить фабрики AngularJS СУХИМИ

В моем приложении AngularJS у меня есть много разных фабрик для выполнения разных REST запросов.

Пробежавшись по ним, я понял, что все они используют много похожего кода. Это ужасно для СУХОСТИ, а также делает это грязным и более длинным, чем необходимо.

Например, все они выполняют одинаковые проверки для caches:

        // Cache stuff
        var cacheName = 'projects.rsrc.getProjectUsersService';
        var cache = cacheAppFactory.get(cacheName);
        if(clearCache) {
            cacheAppFactory.clear(cacheName);
        }

Я хочу просто поместить этот код в ОДНУ функцию, которая принимает cacheName и вызывает ее с каждой фабрики.

Есть ли способ сослаться на какой-то «глобальный» код или функции изнутри фабрик?


person CodyBugstein    schedule 29.01.2015    source источник
comment
Вы можете посмотреть наследование службы blog.mgechev.com /2013/12/18/   -  person Boris Charpentier    schedule 29.01.2015
comment
Помните, что фабрика может зависеть от другой фабрики, поэтому код может быть упакован в саму фабрику\службу.   -  person Chandermani    schedule 29.01.2015


Ответы (1)


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

Затем просто создайте метод в фабрике кеша, который будет возвращать кеши со всех зарегистрированных фабрик.

Это, вероятно, настолько DRY, насколько вы можете получить, и аналогичный принцип может быть применен ко всем вещам, которые, по вашему мнению, повторяются слишком часто, а не только к кешу.

person Shomz    schedule 29.01.2015