Android设计模式-----依赖注入

原创 2015年11月17日 22:27:43

当我们需要根据不同的条件创造不同的对象时,首先想到的也许是不断的像代码中加入if判断
例如:

//每个缓存类中都有一个取到图片的方法
ImageCache imageCache=new ImageCache();
MemeryCache memeryCache=new MemeryCache ();
DoubleCache doubleCache=new DoubleCache();
public void displayImage(final String url,final ImageView imageView){
Bitmap bitmap;
   if(从内存中拿图片){
      bitmap=memeryCache.getBitmap();
      }
   else if(从硬盘中拿图片){
      bitmap=imageCache.getBimap();
}else if(。。。){
      bitmap=doubleCache.getBitmap();  
  }
}
}

这是一种可行的方法,但是考虑当我们有多中条件时呢?就会产生多种缓存对象,并且出现多种判断。
避免这类情况的出现,可以通过依赖注入的方式。
1.创建一个接口,将共同的方法提前出来
2.父类的引用指向子类对象
3.提供注入接口

例如:

public interface ImageCache{
 public Bitmap getBitmap(String url);
 public void setBitmap();
}
public class MemeryCache implements ImageCache(){。。。}

public class DiskLruCache implements ImageCache()


public class ImageLoader{
  ImageCache mImageCache=new MemeryCache();
  //注入缓存
  public void setCacheMay(ImageCache cache){
   this.mImageCache=cache;
}
 public void displayImage(String path){
  Bitmap bitmap=mImageCache.getBitmap(图片路径);
  //开启线程下载图片
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

PHP 依赖注入 (设计模式)

首先依赖注入和控制反转说的是同一个东西,是一种设计模式,这种设计模式用来减少程序间的耦合,鄙人学习了一下,看TP官网还没有相关的文章,就写下这篇拙作介绍一下这种设计模式,希望能为TP社区贡献一些力量。...

Yii2.0 设计模式 - 依赖注入 Dependent Injection

前言:这是我第二个博文说到DI,IOC,上次说的是spring实现DI的一个方式。今天要说的是Yii2.0 实现的DI,实际上有很多相同之处。在实现解析依赖的时候,都采用了反射的思想。(何为反射?如果...

[李景山php] 依赖注入和设计模式

什么是依赖注入?IOC:英文全称:Inversion of Control,中文名称:控制反转,它还有个名字叫依赖注入(Dependency Injection,简称DI)。当一个类的实例需要另一个类...

(随记四)Android设计模式解析与实战_面对对象六大原则之依赖倒置原则

(随记四)Android设计模式解析与实战_面对对象六大原则之依赖倒置原则 : 让项目拥有变化的能力 定义 : 依赖倒置原则指定了一种特定的解耦形式,使得高层次模块不依赖于低层次模块的实现细节 关键点...

JAVA的依赖注入模式(Dependency Injection Design Pattern in Java)

依赖注入模式可以使我们的代码是松耦合的、可扩展的及可维护性更高的。   依赖注入模式似乎是很难掌握和理解的,这里我用一个比较简单点的事例介绍下依赖注入模式。 比如我们有个EmailService...

依赖注入(Dependency Injection)模式

1.2 依赖注入模式 依赖注入(Dependency Injection) 是一个非常简单的概念,伸手-等待。(让DIP、IoC滚蛋) 如例程1-5所示,Client依赖于抽象类型(甚...

IoC模式(控制反转、依赖注入)

IoC就是IoC,不是什么技术,是一种设计模式。IoC 亦称为 “依赖倒置原则”(“Dependency Inversion Principle”)。 控制反转(Inversion of Contr...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)