
软件设计
亦泽同学
欢迎关注微信公众号:从来不想
展开
-
设计-表驱动法降低代码的圈复杂度
设计-表驱动法降低代码的圈复杂度1、设计-表驱动法降低代码的圈复杂度1、设计-表驱动法降低代码的圈复杂度先来看一个问题设计一个根据不同scheme判断应用内打开还是外部打开的程序。/** * 优化一段代码,降低代码的圈复杂度 * * scheme 打开 * weixin:// true * mqq:// true * baidu:// true * https:// false * */很自然的,我们可以想到这样的方法原创 2020-08-15 21:28:25 · 748 阅读 · 0 评论 -
设计-设计模式之观察者模式
设计模式-手写观察者模式1、观察者模式的概念2、Java代码实现1、观察者模式的概念观察者模式的概念在这里讲的挺好当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要解决...原创 2020-04-14 17:53:51 · 220 阅读 · 0 评论 -
设计-多文件多线程下载器的设计与实现(线程池)
Java-多文件多线程下载器的设计与实现1、多线程下载的原因和我们的目标2、下载派发器设计3、下载接口的设计4、单文件多线程下载的实现5、断点续传的实现6、如何使用7、总结1、多线程下载的原因和我们的目标多线程多文件下载是一个常见的需求,一些服务器为了负载均衡,往往会给每个请求线程设置最大的带宽,因此线程数量有时候也成为制约我们下载网络的原因之一。这类限制我们其实经常遇到,比如说百度网盘就是通过限制单线程下载速度来实现限速。我们知道,现成的创建是比较消耗系统资源的操作,频繁的,无限制的创建线程可能会导原创 2020-05-09 17:15:10 · 1700 阅读 · 0 评论 -
设计-LruCache的实现
设计类-LruCache的设计与实现设计类-LruCache的设计与实现设计类-LruCache的设计与实现LruCache的运用相当广泛,在加载图片等大文件时,难以离开LruCache和软引用,例如Android著名的图片加载库Glide以及网络请求库OkHttp就使用到了LruCache。在集合框架中,LinkedHashMap也可以原生的支持LruCache功能。先看一下题目描述运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get原创 2020-07-12 16:11:07 · 366 阅读 · 0 评论 -
设计-设计一段处理错误码的代码
设计一段处理错误码的代码不得不说,考察的这道题对我的编程观念有很大的帮助。这个题目其实是我在面试的时候遇到的题目,主要考察的是工程能力,但当时心里只想着用表驱动优化了,结果无法记录错误代码的范围,也没想出来。不过面试官给了点提示,说时间复杂度也可以不是O(N),那我们就用配置文件解决这个问题吧。请补全这个函数String getInfo(int errCode),输入错误码返回错误信息,比如:错误代码1,用户名错误;错误代码2,密码错误;错误代码10-100,数据库错误;错误代码200-100原创 2020-08-14 20:09:08 · 1413 阅读 · 0 评论