diff -u b/core/includes/common.inc b/core/includes/common.inc
--- b/core/includes/common.inc
+++ b/core/includes/common.inc
@@ -6366,12 +6366,12 @@
   // This is executed based on old/previously known information, which is
   // sufficient, since new extensions cannot have any primed caches yet.
   module_invoke_all('cache_flush');
-  array_walk(Cache::getBins(), function (CacheBackendInterface $cache_backend, $service_id) {
+  foreach (Cache::getBins() as $service_id => $cache_backend) {
     // @todo remove form after http://drupal.org/node/512026 is in.
     if ($service_id != 'cache.form' && $service_id != 'cache.menu') {
       $cache_backend->deleteAll();
     }
-  });
+  }
 
   // Flush asset file caches.
   drupal_clear_css_cache();
diff -u b/core/lib/Drupal/Core/Cache/Cache.php b/core/lib/Drupal/Core/Cache/Cache.php
--- b/core/lib/Drupal/Core/Cache/Cache.php
+++ b/core/lib/Drupal/Core/Cache/Cache.php
@@ -16,23 +16,6 @@
 class Cache {
 
   /**
-   * Helper to register a cache bin to the container.
-   *
-   * @param \Symfony\Component\DependencyInjection\ContainerBuilder $container
-   *   The container
-   * @param $bin
-   *   The bin to add. Do not add the cache_ prefix.
-   */
-  public static function registerBin(ContainerBuilder $container, $bin) {
-    $container
-      ->register("cache.$bin", 'Drupal\Core\Cache\CacheBackendInterface')
-      ->setFactoryService('cache_factory')
-      ->setFactoryMethod('get')
-      ->addArgument($bin)
-      ->addTag('cache.bin');
-  }
-
-  /**
    * Deletes items from all bins with any of the specified tags.
    *
    * Many sites have more than one active cache backend, and each backend may
@@ -46,9 +29,9 @@
    *   The list of tags to delete cache items for.
    */
   public static function deleteTags(array $tags) {
-    array_walk(static::getBins(), function (CacheBackendInterface $cache_backend) use ($tags) {
+    foreach (static::getBins() as $cache_backend) {
       $cache_backend->deleteTags($tags);
-    });
+    }
   }
 
   /**
@@ -65,9 +48,9 @@
    *   The list of tags to invalidate cache items for.
    */
   public static function invalidateTags(array $tags) {
-    array_walk(static::getBins(), function (CacheBackendInterface $cache_backend) use ($tags) {
+    foreach (static::getBins() as $cache_backend) {
       $cache_backend->invalidateTags($tags);
-    });
+    }
   }
 
   /**
@@ -78,8 +61,9 @@
    */
   public static function getBins() {
     $bins = array();
-    foreach (Drupal::parameter('cache_bins') as $service_id => $bin) {
-      $bins[$bin] = Drupal::service($service_id);
+    $container = Drupal::getContainer();
+    foreach ($container->getParameter('cache_bins') as $service_id => $bin) {
+      $bins[$bin] = $container->get($service_id);
     }
     return $bins;
   }
diff -u b/core/lib/Drupal/Core/Cache/CacheFactory.php b/core/lib/Drupal/Core/Cache/CacheFactory.php
--- b/core/lib/Drupal/Core/Cache/CacheFactory.php
+++ b/core/lib/Drupal/Core/Cache/CacheFactory.php
@@ -12,6 +12,7 @@
  */
 use Drupal\Component\Utility\Settings;
 use Symfony\Component\DependencyInjection\ContainerAware;
+use Symfony\Component\DependencyInjection\ContainerBuilder;
 
 class CacheFactory extends ContainerAware {
 
@@ -57,2 +58,18 @@
 
+  /**
+   * Helper to register a cache bin to the container.
+   *
+   * @param \Symfony\Component\DependencyInjection\ContainerBuilder $container
+   *   The container
+   * @param $bin
+   *   The bin to add. Do not add the cache_ prefix.
+   */
+  public static function registerBin(ContainerBuilder $container, $bin) {
+    $container
+      ->register("cache.$bin", 'Drupal\Core\Cache\CacheBackendInterface')
+      ->setFactoryService('cache_factory')
+      ->setFactoryMethod('get')
+      ->addArgument($bin)
+      ->addTag('cache.bin');
+  }
 }
diff -u b/core/lib/Drupal/Core/CoreBundle.php b/core/lib/Drupal/Core/CoreBundle.php
--- b/core/lib/Drupal/Core/CoreBundle.php
+++ b/core/lib/Drupal/Core/CoreBundle.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\Core;
 
-use Drupal\Core\Cache\Cache;
+use Drupal\Core\Cache\CacheFactory;
 use Drupal\Core\Cache\ListCacheBinsPass;
 use Drupal\Core\DependencyInjection\Compiler\RegisterKernelListenersPass;
 use Drupal\Core\DependencyInjection\Compiler\RegisterAccessChecksPass;
@@ -424,7 +424,7 @@
       ->register('cache.backend.memory', 'Drupal\Core\Cache\MemoryBackendFactory');
     // Register a service for each bin for injecting purposes.
     foreach (array('bootstrap', 'config', 'cache', 'form', 'menu', 'page', 'path') as $bin) {
-      Cache::registerBin($container, $bin);
+      CacheFactory::registerBin($container, $bin);
     }
 
     $container->addCompilerPass(new ListCacheBinsPass());
diff -u b/core/modules/block/lib/Drupal/block/BlockBundle.php b/core/modules/block/lib/Drupal/block/BlockBundle.php
--- b/core/modules/block/lib/Drupal/block/BlockBundle.php
+++ b/core/modules/block/lib/Drupal/block/BlockBundle.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\Block;
 
-use Drupal\Core\Cache\Cache;
+use Drupal\Core\Cache\CacheFactory;
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 use Symfony\Component\HttpKernel\Bundle\Bundle;
 
@@ -23,7 +23,7 @@
     // Register the BlockManager class with the dependency injection container.
     $container->register('plugin.manager.block', 'Drupal\block\Plugin\Type\BlockManager')
       ->addArgument('%container.namespaces%');
-    Cache::registerBin($container, 'block');
+    CacheFactory::registerBin($container, 'block');
   }
 
 }
diff -u b/core/modules/field/lib/Drupal/field/FieldBundle.php b/core/modules/field/lib/Drupal/field/FieldBundle.php
--- b/core/modules/field/lib/Drupal/field/FieldBundle.php
+++ b/core/modules/field/lib/Drupal/field/FieldBundle.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\field;
 
-use Drupal\Core\Cache\Cache;
+use Drupal\Core\Cache\CacheFactory;
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 use Symfony\Component\HttpKernel\Bundle\Bundle;
 
@@ -25,7 +25,7 @@
       ->addArgument('%container.namespaces%');
     $container->register('plugin.manager.field.formatter', 'Drupal\field\Plugin\Type\Formatter\FormatterPluginManager')
       ->addArgument('%container.namespaces%');
-    Cache::registerBin($container, 'field');
+    CacheFactory::registerBin($container, 'field');
   }
 
 }
diff -u b/core/modules/filter/lib/Drupal/filter/FilterBundle.php b/core/modules/filter/lib/Drupal/filter/FilterBundle.php
--- b/core/modules/filter/lib/Drupal/filter/FilterBundle.php
+++ b/core/modules/filter/lib/Drupal/filter/FilterBundle.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\filter;
 
-use Drupal\Core\Cache\Cache;
+use Drupal\Core\Cache\CacheFactory;
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 use Symfony\Component\HttpKernel\Bundle\Bundle;
 
@@ -20,7 +20,7 @@
    * Overrides Symfony\Component\HttpKernel\Bundle\Bundle::build().
    */
   public function build(ContainerBuilder $container) {
-    Cache::registerBin($container, 'filter');
+    CacheFactory::registerBin($container, 'filter');
   }
 
 }
diff -u b/core/modules/toolbar/lib/Drupal/toolbar/ToolbarBundle.php b/core/modules/toolbar/lib/Drupal/toolbar/ToolbarBundle.php
--- b/core/modules/toolbar/lib/Drupal/toolbar/ToolbarBundle.php
+++ b/core/modules/toolbar/lib/Drupal/toolbar/ToolbarBundle.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\toolbar;
 
-use Drupal\Core\Cache\Cache;
+use Drupal\Core\Cache\CacheFactory;
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 use Symfony\Component\HttpKernel\Bundle\Bundle;
 
@@ -20,7 +20,7 @@
    * Overrides Symfony\Component\HttpKernel\Bundle\Bundle::build().
    */
   public function build(ContainerBuilder $container) {
-    Cache::registerBin($container, 'toolbar');
+    CacheFactory::registerBin($container, 'toolbar');
   }
 
 }
diff -u b/core/modules/views/lib/Drupal/views/ViewsBundle.php b/core/modules/views/lib/Drupal/views/ViewsBundle.php
--- b/core/modules/views/lib/Drupal/views/ViewsBundle.php
+++ b/core/modules/views/lib/Drupal/views/ViewsBundle.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\views;
 
-use Drupal\Core\Cache\Cache;
+use Drupal\Core\Cache\CacheFactory;
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 use Symfony\Component\HttpKernel\Bundle\Bundle;
 use Symfony\Component\DependencyInjection\Reference;
@@ -37,8 +37,8 @@
 
     $container->register('views.analyzer', 'Drupal\views\Analyzer')
       ->addArgument(new Reference('module_handler'));
-    Cache::registerBin($container, 'views_info');
-    Cache::registerBin($container, 'views_results');
+    CacheFactory::registerBin($container, 'views_info');
+    CacheFactory::registerBin($container, 'views_results');
   }
 
 }
