(随记一)Android设计模式解析与实战_面对对象六大原则之单一职责原则
2016-12-16 18:51
387 查看
(随记一)Android设计模式解析与实战_面对对象六大原则之单一职责原则:
* 定义 : 一个类而言,应该竟有一个引起它变化的原因 * 简单来说就是 : 一个类应该是一组相关性很高的函数、数据的封装。 * 原则:两个完全不一样的功能不应该放在一个类中。一个类应该是一组相关性很高的函数、数据的封装。不断审视自己代码,根据具体业务与功能去划分
代码示例
public class ImageLoader { //图片缓存 ImageCache mImageCache = new ImageCache(); private final ExecutorService mExecutorService; //线程池数量为cpu数量 public ImageLoader() { mExecutorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()); } private void displayImage(final String url, final ImageView imageView) { final Bitmap bitmap = mImageCache.get(url); if (bitmap != null) { imageView.setImageBitmap(bitmap); return; } else { imageView.setTag(url); mExecutorService.submit(new Runnable() { @Override public void run() { Bitmap netBitmap = downloadImage(url); if (netBitmap == null) { return; } else { if (imageView.getTag().equals(url)) { imageView.setImageBitmap(netBitmap); } mImageCache.put(url, netBitmap); } } }); } } /** * 下载图片 * * @param imageUrl * @return */ public Bitmap downloadImage(String imageUrl) { Bitmap bitmap = null; try { URL url = new URL(imageUrl); final HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); bitmap = BitmapFactory.decodeStream(urlConnection.getInputStream()); urlConnection.disconnect(); } catch (Exception e) { e.printStackTrace(); } return bitmap; } }
-
/** * Created by Administrator on 2016/12/16. * 图片缓存类 */ public class ImageCache { LruCache<String, Bitmap> mImageCache; public ImageCache() { initImageCache(); } private void initImageCache() { //计算可使用的最大内存 final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024); //取四分之一内存作为缓存 final int cacheSize = maxMemory / 4; mImageCache = new LruCache<String, Bitmap>(cacheSize) { @Override protected int sizeOf(String key, Bitmap value) { return value.getRowBytes() * value.getHeight() / 1024; } }; } /** * 写入缓存 * * @param url * @param bitmap */ public void put(String url, Bitmap bitmap) { mImageCache.put(url, bitmap); } /** * 获得缓存 * * @param url * @return */ public Bitmap get(String url) { return mImageCache.get(url); } }
相关文章推荐
- (随记四)Android设计模式解析与实战_面对对象六大原则之依赖倒置原则
- (随记三)Android设计模式解析与实战_面对对象六大原则之里式替换原则
- (随记六)Android设计模式解析与实战_面对对象六大原则之加米特原则
- (随记五)Android设计模式解析与实战_面对对象六大原则之接口隔离原则
- Android源码设计模式解析与实战——面向对象六大原则(一)
- Android 源码设计模式解析与实战 第2版 读书笔记1.1单一职责原则
- 读Android源码设计模式解析与实战(第一章面向对象的六大原则)
- android 源码设计模式解析与实战 读书笔记 1 面向对象的六大原则
- 设计模式六大原则-单一职责原则、开放封闭原则、依赖倒转原则、里氏代换原则、迪米特法则、合成/聚合复用原则
- 设计模式六大原则(1):单一职责原则
- 设计模式六大原则(1):单一职责原则
- java 设计模式六大原则(1):单一职责原则
- 设计模式六大原则(1):单一职责原则
- 设计模式六大原则(1):单一职责原则
- 设计模式之六大原则——单一职责原则(SRP)
- 设计模式六大原则(1):单一职责原则
- 设计模式六大原则(1):单一职责原则
- 设计模式六大原则(1):单一职责原则
- 设计模式六大原则1—单一职责原则
- 设计模式六大原则(1):单一职责原则