(随记一)Android设计模式解析与实战_面对对象六大原则之单一职责原则
来源:互联网 发布:泛突厥主义知乎 编辑:程序博客网 时间:2024/05/22 04:37
(随记一)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); } }
1 0
- (随记一)Android设计模式解析与实战_面对对象六大原则之单一职责原则
- (随记二)Android设计模式解析与实战_面对对象六大原则之开闭原则
- (随记六)Android设计模式解析与实战_面对对象六大原则之加米特原则
- (随记三)Android设计模式解析与实战_面对对象六大原则之里式替换原则
- (随记四)Android设计模式解析与实战_面对对象六大原则之依赖倒置原则
- (随记五)Android设计模式解析与实战_面对对象六大原则之接口隔离原则
- 设计模式六大原则之(一) 单一职责原则
- 面向对象六大设计原则(一)单一职责原则
- 设计模式六大原则:单一职责原则
- 设计模式六大原则-------单一职责原则
- 设计模式六大原则:单一职责原则
- 设计模式六大原则---单一职责原则
- 设计模式六大原则----------单一职责原则
- 设计模式六大原则 单一职责原则
- 设计模式六大原则:单一职责原则
- 设计模式六大原则-单一职责原则
- 设计模式六大原则---单一职责原则
- 设计模式之禅--六大原则之单一职责原则
- maven入门案例
- jquery 取出一组选中的复选框的值,变成数组
- 京东量化策略榜新功能!
- 整数缓存
- JAVA基本数据类型
- (随记一)Android设计模式解析与实战_面对对象六大原则之单一职责原则
- Json转化报错时的问题!!!
- Shell编程语法之六:输入输出重定向
- MySQL Group Replication实践
- 解决 was 更新web.xml 无效原因
- R数据读取存储
- opnfv c/fuel 9编译问题3--突然中断
- POJ 2100 Graveyard Design 已翻译
- (随记二)Android设计模式解析与实战_面对对象六大原则之开闭原则